我正在尝试以更用户友好和自动魔术的方式处理 Python 脚本中的不同编码(有 utf8 的 API)。它是一个跨平台的控制台脚本。
对于stdout
我使用的打印sys.stdout.encoding
,它似乎在打印到控制台时几乎总是做正确的事情。但是,当标准输出通过管道传输时,它变为None
.
所以在那种情况下,我假设我正在管道到一个文件并使用locale.getpreferredencoding()
但是:
- 我不确定这是打印到文件的正确编码,但它可以跨平台工作。
- 管道到程序 时这不起作用
|
。如果在这种情况下存在编码的标准或预期行为,我不知道如何检测到这种情况。