小编典典

如何在Python 3中设置sys.stdout编码?

python

在Python 2中设置默认输出编码是一个众所周知的习惯用法:

sys.stdout = codecs.getwriter("utf-8")(sys.stdout)

这会将sys.stdout对象包装在编解码器中,该编解码器以UTF-8对输出进行编码。

但是,该技术在Python 3中不起作用,因为它sys.stdout.write()期望使用a
str,但是编码的结果是bytes,并且在codecs尝试将编码后的字节写入原始字节时发生错误sys.stdout

在Python 3中执行此操作的正确方法是什么?


阅读 375

收藏
2020-12-20

共1个答案

小编典典

从Python
3.7开始,您可以使用以下命令更改标准流的编码reconfigure()

sys.stdout.reconfigure(encoding='utf-8')

您还可以通过添加errors参数来修改如何处理编码错误。

2020-12-20