问问题
143 次
1 回答
1
当要打印异常并给出 Unicode 消息时,Python 会尝试使用sys.getdefaultencoding()
. 如果它失败了,编码错误就会被抑制,你会得到奇怪的输出。
在打印情况下,Unicode 字符串使用sys.stdout.encoding
. 是的,如果使用 excepthooksys.stderr.encoding
而不是sys.getdefaultencoding()
.
请注意,以下工作。
raise LookupError(u"symbol: \u0411".encode(your_encoding))
您还可以通过调用更改sitecustomize
或更改默认编码。您的系统应配置为默认编码等于(以及其他标准流的编码)。usercustomize
sys.setdefaultencoding(your_encoding)
sys.stderr.encoding
此外,这个问题在 Python 3 中不再存在。
于 2015-10-28T22:49:09.073 回答