如何在终端中修复Python编码

时间:2017-02-28 18:34:20

标签: python unicode encoding utf-8

从Gnome-Terminal等终端程序运行时,如何设置Python与sys.stdout一起使用的默认编码?

如果我在Gnome-Terminal中执行Python脚本,我会得到臭名昭着的&#34; UnicodeEncodeError:&#39; ascii&#39;编解码器不能编码字符&#34;如果脚本尝试打印unicode字符,则会出错。但是,即使Gnome-Terminal的编码设置为&#34; UTF-8&#34;,如果我打印sys.stdout.encoding它显示&#34; ANSI_X3.4-1968&#34;。< / p>

重现错误的最小代码是:

python -c 'import sys; print sys.stdout.encoding; print u"\u0411\n"'

为什么Python不使用终端的utf-8编码?

注意,我询问如何将我的字符串转换为ASCII。

1 个答案:

答案 0 :(得分:4)

尝试设置PYTHONIOENCODING变量,或使用this question中的解决方案。