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

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

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

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

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

您需要指定编码:否则 unicode() 不知道 \xe0 是什么意思,因为那是特定于编码的。

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

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

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