【发布时间】:2020-09-05 03:43:18
【问题描述】:
我已经仔细阅读了Setting the correct encoding when piping stdout in Python 的回答,但是:
如果您不自己调用该过程,解决方案
export PYTHONIOENCODING=utf8将不起作用。示例:here 进程是从 Apache + mod_cgi 调用的,在 Bash 中运行export PYTHONIOENCODING=utf8不会改变任何内容;我还有import sys; print(str(sys.stdout.encoding))给ANSI_X3.4-1968。-
解决办法
import sys, codecs sys.stdout = codecs.getwriter('utf8')(sys.stdout)可能适用于 Python 2.7,但实际上不适用于 Python 3,因为那时,
print(s)期望s是字节,这不是很方便
我们是否应该使用永久export PYTHONIOENCODING=utf8的方式系统的所有进程(即是持久的,即使在重新启动后也是如此),如果可以怎么办?
【问题讨论】:
标签: python python-3.x encoding utf-8 io