如何修复终端中的Python编码

如何修复终端中的Python编码,python,unicode,encoding,utf-8,Python,Unicode,Encoding,Utf 8,当从Gnome terminal这样的终端程序运行时,如何设置Python与sys.stdout一起使用的默认编码 如果我在Gnome终端内执行Python脚本,如果脚本试图打印unicode字符,就会出现臭名昭著的“UnicodeEncodeError:'ascii'编解码器无法编码字符”错误。然而,即使Gnome终端的编码设置为“UTF-8”,如果我打印sys.stdout.encoding,它也会显示“ANSI_X3.4-1968” 再现错误的最小代码为: python -c 'impor

当从Gnome terminal这样的终端程序运行时,如何设置Python与sys.stdout一起使用的默认编码

如果我在Gnome终端内执行Python脚本,如果脚本试图打印unicode字符,就会出现臭名昭著的“UnicodeEncodeError:'ascii'编解码器无法编码字符”错误。然而,即使Gnome终端的编码设置为“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\u ALL
打印?尝试了
-*-编码:utf-8-*-
在脚本文件的顶部?@Szabolcs没有脚本,据我所知,只有一个命令。请在终端上显示
locale
命令的输出,好吗?@Szabolcs和upvorters
#coding:utf8
声明源文件的编码,而不声明其他内容。