如何修复终端中的Python编码
当从Gnome terminal这样的终端程序运行时,如何设置Python与sys.stdout一起使用的默认编码 如果我在Gnome终端内执行Python脚本,如果脚本试图打印unicode字符,就会出现臭名昭著的“UnicodeEncodeError:'ascii'编解码器无法编码字符”错误。然而,即使Gnome终端的编码设置为“UTF-8”,如果我打印如何修复终端中的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
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
声明源文件的编码,而不声明其他内容。