首页 文章

如何在终端中修复Python编码

提问于
浏览
4

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

如果我在Gnome-Terminal中执行Python脚本,如果脚本尝试打印unicode字符,我会收到臭名昭着的"UnicodeEncodeError: 'ascii' codec can't encode character"错误 . 但是,即使Gnome-Terminal的编码设置为"UTF-8",如果我打印 sys.stdout.encoding 它显示"ANSI_X3.4-1968" .

重现错误的最小代码是:

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

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

注意,我不是问如何将我的字符串转换为ASCII .

1 回答

相关问题