当要写入的文件名具有克罗地亚语字符时,Python3 UnicodeEncodeError

时间:2019-06-17 07:17:15

标签: python-3.x character-encoding

我是这样从熊猫写到csv的:

df.to_csv(extractpath+'/extract_{}'.format(locname))

现在,当locname变量包含克罗地亚语字符时,出现错误

*UnicodeEncodeError: 'ascii' codec can't encode character '\u0161' in position 53: ordinal not in range(128)*

我想出的唯一解决方法是:

df.to_csv(extractpath+'/extract_{}'.format(locname.encode('utf-8')))

但是,尽管错误已消失,但是文件名不再正确,例如,它们看起来像:

*extract_b'Vara\xc5\xbedin'* instead of *extract_Varaždin*

如何正确解决问题?

1 个答案:

答案 0 :(得分:0)

我在shell中错误地设置了LANG变量,而没有意识到它。因此,当我从shell脚本执行python脚本时,它不起作用。现在,更正LANG变量后即可。