我正在尝试在Python脚本中处理不同的编码,以更加用户友好和自动魔术的方式(有utf8的API)。它是一个跨平台的控制台脚本。
要打印到stdout
我使用sys.stdout.encoding
,它似乎在打印到控制台时几乎总是做正确的事情。但是当stdout 管道时,它变为None
。
因此,在这种情况下,我假设我正在管道传输文件并使用locale.getpreferredencoding()
但是:
|
时,这不起作用。我不知道如果在这种情况下存在标准或预期的行为进行编码,就不会发现这种情况。答案 0 :(得分:1)
如果为“无”,只需将数据输出为utf-8
,然后将其记录下来。如果碰巧有其他编码的用例,可以通过命令行或其他方式选择。