2012-04-20 68 views
1

我想在Python腳本中處理不同的編碼,更方便用戶和自動魔法的方式(有針對utf8的API)。它是一個跨平臺的控制檯腳本。sys.stdout.encoding爲None時該怎麼辦?

對於打印到stdout我使用sys.stdout.encoding它似乎幾乎總是在打印到控制檯時做正確的事情。然而,當標準輸出爲管道它變成None

因此,在這種情況下,我認爲我是管道到一個文件中,並使用locale.getpreferredencoding()但:

  • 我不知道這是打印到文件正確的編碼,但它的工作原理相當跨平臺的。
  • 連接到程序|時不起作用。我不知道如果在這種情況下如果是標準或預期的行爲,那麼既不是這種情況。

回答

1

如果是無,只需將您的數據輸出爲utf-8並記錄下來。如果碰巧有其他編碼的用例,請通過命令行或其他方式進行選擇。