我的系统:xp+python27 编解码器, xp gbk;python 27 ascii
>>> a = '你好'
>>> a
'\xc4\xe3\xba\xc3'
>>> print a
你好
>>> '\xc4\xe3\xba\xc3'.decode('gbk')
u'\u4f60\u597d'
>>> '\xc4\xe3\xba\xc3'.encode('gbk')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal
not in range(128)
如何从'\xc4\xe3\xba\xc3'获取“你ࣻ”?在
他的意思是,当编码和打印时,它不会按需要显示
但如果指定:
^{pr2}$您应该使用:
pythonshell无法打印
gbk
编码的字符串。它就在那里,你就是不能打印出来。在这是可行的,因为您将字节解码为unicode:
这不是,因为您正在尝试编码字节(已经编码):
^{pr2}$Python 2中的错误消息在这里没有帮助,但是您应该只对unicode字符串使用encode:
在Python2中,只要在交互提示下执行
a
,就会在转义字符串中显示非ascii字符(如\xc3
或\u4f60
)。您可以执行print a
来显示字符。或者使用python3,它将显示包含unicode字符的字符串。在相关问题 更多 >
编程相关推荐