2012-04-20 231 views
1

我想在Python脚本中处理不同的编码,更方便用户和自动魔法的方式(有针对utf8的API)。它是一个跨平台的控制台脚本。sys.stdout.encoding为None时该怎么办?

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

因此,在这种情况下,我认为我是管道到一个文件中,并使用locale.getpreferredencoding()但:

  • 我不知道这是打印到文件正确的编码,但它的工作原理相当跨平台的。
  • 连接到程序|时不起作用。我不知道如果在这种情况下如果是标准或预期的行为,那么既不是这种情况。

回答

1

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