Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获得我的角色?_Python_Unicode_Decode_Encode - Fatal编程技术网

Python 如何获得我的角色?

Python 如何获得我的角色?,python,unicode,decode,encode,Python,Unicode,Decode,Encode,我的系统: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')

我的系统: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)   
>>a='C〕你好'    
>>>a
“\xc4\xe3\xba\xc3”
>>>打印
你好  
>>>“\xc4\xe3\xba\xc3”。解码('gbk')
u'\u4f60\u597d'
>>>“\xc4\xe3\xba\xc3”。编码('gbk')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
UnicodeDecodeError:“ascii”编解码器无法解码位置0:ordinal中的字节0xc4
不在范围内(128)

我怎样才能得到“你好" 从“\xc4\xe3\xba\xc3”?

您的Python shell无法打印
gbk
编码字符串。它在那里,您就是无法打印。

您的Python shell无法打印
gbk
编码字符串。它在那里,您就是无法打印。

这很有效,因为您正在将字节解码为unicode:

'\xc4\xe3\xba\xc3'.decode('gbk')
这不会,因为您正在尝试编码字节(已编码):

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

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

在Python 2中,只需在交互提示下执行
a
,就会在转义的字符串中显示非ascii字符(如
\xc3
\u4f60
)。您可以执行打印一个来显示字符。或者使用Python 3,它将显示包含unicode字符的字符串。

这是有效的,因为您正在将字节解码为unicode:

'\xc4\xe3\xba\xc3'.decode('gbk')
这不会,因为您正在尝试编码字节(已编码):

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

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

在Python 2中,只需在交互提示下执行
a
,就会在转义的字符串中显示非ascii字符(如
\xc3
\u4f60
)。您可以执行打印一个来显示字符。或者使用Python 3,它将显示包含unicode字符的字符串。

他的意思是,在编码和打印时,它不会根据需要显示

>>> a = u'\u4f60\u597d'.encode('gbk')
>>> print a
���
>>> a
'\xc4\xe3\xba\xc3'
但如果指定:

>>> a = '\xe4\xbd\xa0\xe5\xa5\xbd'
>>> print a
你好
你应使用:

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

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

>>> a = u'\u4f60\u597d'.encode('gbk')
>>> print a
���
>>> a
'\xc4\xe3\xba\xc3'
但如果指定:

>>> a = '\xe4\xbd\xa0\xe5\xa5\xbd'
>>> print a
你好
你应使用:

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

你能详细说明你的问题。语言等吗?你能详细说明你的问题。语言等吗?@user1142618:我想你应该从以下内容开始:@user1142618:我想你应该从以下内容开始: