我在使用Python进行编码时遇到了麻烦

时间:2011-11-13 13:15:34

标签: python unicode encoding

我已经使用PHP了一段时间,

但现在我正在努力学习Python。 我从来没有真正遇到过PHP编码的严重问题。至少我可以在几分钟内解决。但是我花了几个小时来解决python中的编码问题,我仍然无法解决它。

所以我的问题是我想使用此命令使用Shell重定向将日语字符串打印到文件

python make_csv.py > csvfile.csv

但是在csv文件上打印的日文文本都搞砸了。

我尝试了几种解决方案,例如使用.encode('utf-8')等,但仍然没有运气 我也遇到了这个错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 5: ordinal not in range(128)

我该如何解决这个问题? 请帮忙。

2 个答案:

答案 0 :(得分:2)

尝试将环境变量PYTHONIOENCODING设置为utf8。这将使Python在默认情况下使用该编码而不是无。

答案 1 :(得分:0)

更新:我删除了我的评论,因为它对这个问题没什么帮助,因为我误读了它...

现在我的分数可能会有所帮助:您可以将日文文本打印到标准输出(sys.stdout)。请注意,在Windows中,sys.stdout的默认编码是CP850而不是UTF-8 ...

(要更改Python的默认io编码,请查看tchrist指出的解决方案:将PYTHONIOENCODING设置为UTF-8)