在 Python 2 中设置默认输出编码是一个众所周知的习惯用法:
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
这包裹了sys.stdout
以 UTF-8 编码输出的编解码器编写器中的对象。
然而,这种技术在 Python 3 中不起作用,因为sys.stdout.write()
期望一个str
,但是编码的结果是bytes
,并且当出现错误时codecs
尝试将编码字节写入原始字节sys.stdout
.
在 Python 3 中执行此操作的正确方法是什么?
从 Python 3.7 开始,您可以使用以下命令更改标准流的编码reconfigure() https://docs.python.org/3/library/io.html#io.TextIOWrapper.reconfigure:
sys.stdout.reconfigure(encoding='utf-8')
您还可以通过添加errors
范围。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)