temp = "à la Carte"
print type(temp)
utemp = unicode(temp)
上面的代码会导致错误。 我的目标是处理临时字符串并使用find来检查它是否包含特定字符串但由于错误而无法处理:
UnicodeDecodeError: ('unknown', u'\xe0', 0, 1, '')
答案 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)