2016-05-29 64 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字符。

相关问题