3
如何从像Gnome-Terminal这样的终端程序运行时设置Python使用的默认编码sys.stdout
?如何在终端中修复Python编码
如果我执行Gnome终端内的Python脚本,我得到了臭名昭著的“UnicodeEncodeError:‘ASCII’编解码器不能编码字符”如果脚本尝试打印Unicode字符错误。但是,即使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。
什么'echo $ LANG'和'echo $ LC_ALL' print? – hurturk
在脚本文件的顶部尝试了'# - * - coding:utf-8 - * - '? – Szabolcs
@Szabolcs根据我的理解,没有脚本 - 只有一个命令。 – avysk