当Python异常信息中包含任何Unicode文字时,会遇到在win控制台打印的问题。有时候,这些Unicode文字根本不会被打印出来,有时候则会被错误地打印出来。而控制台的编码方式是cp866。
当Python默认编码为ascii时也会出现这种情况。
raise LookupError(u"symbol: \u0411")
打印结果为:
LookupError
当我将默认编码设置为utf-8时,我会得到:
LookupError:symbol: ╨С
当我执行以下操作时:
print u"symbol: \u0411"
在这两种情况下,我得到的结果是:
符号: Б
为什么会有这种行为的差异? 该怎么做才能做到正确呢?