在Python 2中设置默认输出编码是一个众所周知的习惯用法:
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
这将sys.stdout
对象包装在一个编解码器编写器中,以UTF-8编码输出.
然而,这种技术在Python3中不起作用,因为sys.stdout.write()
需要str
,但编码的结果是bytes
,当codecs
try 将编码的字节写入原始sys.stdout
时,会发生错误.
在Python3中,正确的方法是什么?