Python UnicodeDecodeError:&x27;ascii';编解码器可以';t解码字节0xa3

Python UnicodeDecodeError:&x27;ascii';编解码器可以';t解码字节0xa3,python,unicode,encoding,utf-8,scrapy,Python,Unicode,Encoding,Utf 8,Scrapy,我得到了这个字符串'Velcro靠背垫\xa36.99'。注意:它前面没有u。它只是简单的ascii码 如何将其转换为unicode 我试过这个 >>> unicode('Velcro Back Rest \xa36.99') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't de

我得到了这个字符串
'Velcro靠背垫\xa36.99'
。注意:它前面没有
u
。它只是简单的ascii码

如何将其转换为unicode

我试过这个

>>> unicode('Velcro Back Rest \xa36.99')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa3 in position 17: ordinal not in range(128)

此处
product\u name
包含有问题的字符串并抛出错误

您需要指定一种编码,以便使用以下代码将字节解码为Unicode:

>>> 'Velcro Back Rest \xa36.99'.decode('latin1')
u'Velcro Back Rest \xa36.99'
>>> print 'Velcro Back Rest \xa36.99'.decode('latin1')
Velcro Back Rest £6.99
在本例中,我能够根据经验猜测编码,您需要为遇到的每个编码提供正确的编解码器。对于web数据,通常包含在内容类型标题的“发件人”中:

Content-Type: text/html; charset=iso-8859-1
其中,
iso-8859-1
是拉丁1编码的官方标准名称。Python将
latin1
识别为
iso-8859-1
的别名


请注意,您的输入数据是而不是普通ASCII。如果是,它将只使用0到127之间的字节
\xa3
是163位小数,因此超出了ASCII范围。

一个完美的答案。我希望我能+2你。别担心,成吉思汗,我抓到你了
Content-Type: text/html; charset=iso-8859-1