2016-05-29 32 views
2

我試過sys.getdefaultencoding(),但不幸的是,這不起作用。它在我的系統上返回ascii,系統區域設置爲ja_JP(即編碼應該是Shift-JIS)。如何在Python 2.x中獲取系統默認編碼?

我想解析CJK文本(在Windows上)。我需要從鍵盤讀取一些文本,確定系統編碼,並將其轉換爲utf8。我經常會在zh_CN(GBK編碼)和ja_JP(Shift-JIS編碼)之間更改我的系統區域設置,因此對系統編碼(鍵盤輸入文本的編碼)進行硬編碼不是一種選擇。任何解決方案

回答

3

解決:sys.stdin.encoding

而且,對於任何試圖sys.getdefaultencoding(),它幾乎從來沒有工作,並將永遠是ascii根據https://wiki.python.org/moin/DefaultEncoding

其值應爲「ASCII」,它是用來當將字節字符串轉換爲Unicode字符串。

如果你把非ASCII字符轉換成字節的字符串,然後.decode(sys.getdefaultencoding())方法將失敗,UnicodeDecodeError錯誤,因此字節字符串不應該包含非ASCII字符。

相關問題