UnicodeDecodeError :('unknown',u'\ xe0',0,1,'')

时间:2018-05-04 10:57:12

标签: python python-2.x

temp = "à la Carte"
print type(temp)
utemp = unicode(temp)

上面的代码会导致错误。 我的目标是处理临时字符串并使用find来检查它是否包含特定字符串但由于错误而无法处理:

UnicodeDecodeError: ('unknown', u'\xe0', 0, 1, '')

2 个答案:

答案 0 :(得分:1)

您需要指定编码:否则unicode()不知道\xe0的含义,因为这是特定于编码的。

>>> temp = "à la Carte"
>>> utemp = unicode(temp,encoding="Windows-1252")
>>> utemp
u'\xe0 la Carte'
>>> print utemp
à la Carte

答案 1 :(得分:1)

在python 2中,普通的字符串文字不能容纳这样的unicode字符,所以即使解析器设法通过它,它仍然是一个错误。这就是存在unicode文字类型的原因。因此,要使其工作,首先必须声明python文件的编码,然后使用unicode文字。像这样:

# -*- coding: utf-8 -*-
temp = u"à la Carte"
print type(temp)
utemp = unicode(temp)