在Python 2中设置默认输出编码是一个众所周知的习惯用法:
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
Run Code Online (Sandbox Code Playgroud)
这将sys.stdout对象包装在编解码器编写器中,该编解码器编写器以UTF-8编码输出.
但是,这种技术在Python 3中不起作用,因为sys.stdout.write()期望a str,但是编码的结果是bytes,并且当codecs尝试将编码的字节写入原始时发生错误sys.stdout.
在Python 3中执行此操作的正确方法是什么?