我的开发环境是:eclipse+pydev。
如果我使用 raw_input() 来获取字符,我输入“你好世界”,然后我得到“浣犲ソ涓栫晫”。那我怎样才能得到“你好世界”并正确打印出来。
我试过 raw_input().decode(sys.stdin.encoding),但结果是一样的。
使用终端/控制台的代码页进行解码。
import sys
t = raw_input().decode(sys.stdin.encoding)
print t
检查您使用的编码。根据@imom0 的评论,我去尝试了gbk
编码。具体来说,这是我的 python 2.7.3 解释器,输入为 UTF-8 编码ibus
:
>>> print raw_input().decode('gbk')
你好世界
浣犲ソ涓栫晫
>>> print raw_input().decode('utf-8')
你好世界
你好世界
这是尝试将 UTF-8 编码字符串解码为gbk
. 由于您的输入似乎是某种形式的 UTF,为什么不强制执行 utf-8 解码或使用输入的编码对其进行解码,如@ignacio-vazquez-abrams 的回答?
import sys
print myString.decode(sys.stdin.encoding)