如何设置Python在象Gnome-Terminal这样的终端程序中使用
如果我在Gnome-Terminal中执行Python脚本,如果脚本尝试打印Unicode字符,则会收到臭名昭著的“UnicodeEncodeError:'ascii' codec不能编码字符”错误。然而,即使Gnome-Terminal的编码设置为“UTF-8”,如果我打印
最小的用于重现错误的代码如下:
sys.stdout
默认编码?如果我在Gnome-Terminal中执行Python脚本,如果脚本尝试打印Unicode字符,则会收到臭名昭著的“UnicodeEncodeError:'ascii' codec不能编码字符”错误。然而,即使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
分别打印什么? - hurturk# -*- coding: utf-8 -*-
了吗? - Szabolcslocale
命令的输出结果? - avysk# coding: utf8
声明了源文件的编码,仅此而已。 - Mark Tolonen