从Gnome-Terminal等终端程序运行时,如何设置Python与sys.stdout
一起使用的默认编码?
如果我在Gnome-Terminal中执行Python脚本,我会得到臭名昭着的" UnicodeEncodeError:' ascii'编解码器不能编码字符"如果脚本尝试打印unicode字符,则会出错。但是,即使Gnome-Terminal的编码设置为" UTF-8",如果我打印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。