如何得到我的角色?

2024-09-27 01:23:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我的系统: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'获取“你ࣻ”?在


Tags: in系统编解码器asciixppython27printdecode
3条回答

他的意思是,当编码和打印时,它不会按需要显示

>>> a = u'\u4f60\u597d'.encode('gbk')
>>> print a
���
>>> a
'\xc4\xe3\xba\xc3'

但如果指定:

^{pr2}$

您应该使用:

>>> c = '\xe4\xbd\xa0\xe5\xa5\xbd'.decode('gbk')
>>> c
u'\u6d63\u72b2\u30bd'
>>> c = c.encode('gbk')
>>> print c
你好

pythonshell无法打印gbk编码的字符串。它就在那里,你就是不能打印出来。在

这是可行的,因为您将字节解码为unicode:

'\xc4\xe3\xba\xc3'.decode('gbk')

这不是,因为您正在尝试编码字节(已经编码):

^{pr2}$

Python 2中的错误消息在这里没有帮助,但是您应该只对unicode字符串使用encode:

u'\u4f60\u597d'.encode('gbk')   # Gets you back the bytes you had before.

在Python2中,只要在交互提示下执行a,就会在转义字符串中显示非ascii字符(如\xc3\u4f60)。您可以执行print a来显示字符。或者使用python3,它将显示包含unicode字符的字符串。在

相关问题 更多 >

    热门问题