2

我正在尝试以更用户友好和自动魔术的方式处理 Python 脚本中的不同编码(有 utf8 的 API)。它是一个跨平台的控制台脚本。

对于stdout我使用的打印sys.stdout.encoding,它似乎在打印到控制台时几乎总是做正确的事情。但是,当标准输出通过管道传输时,它变为None.

所以在那种情况下,我假设我正在管道到一个文件并使用locale.getpreferredencoding()但是:

  • 我不确定这是打印到文件的正确编码,但它可以跨平台工作。
  • 管道到程序 时这不起作用|。如果在这种情况下存在编码的标准或预期行为,我不知道如何检测到这种情况。
4

1 回答 1

1

如果它是无,只需将您的数据输出为utf-8,并记录它。如果碰巧有其他编码的用例,请通过命令行或其他方式将其作为一个选项。

于 2012-04-20T17:06:54.800 回答