python2中html实体的解码

python2中html实体的解码,python,utf-8,Python,Utf 8,我有一个转义的html标记字符串,í;',我希望它是正确的重音字符“í” 读了这么多,这是我的尝试: messy = '&#xed;' print type(messy) >>> <type 'str'> decoded=messy.decode('utf-8') print decoded >>> &#xed; 仍然不起作用,所以我测试了我之前链接到的so问题中的示例 html = '&#196;' soup

我有一个转义的html标记字符串,
í;',我希望它是正确的重音字符
“í”

读了这么多,这是我的尝试:

messy = '&#xed;'
print type(messy)
>>> <type 'str'>

decoded=messy.decode('utf-8')
print decoded
>>> &#xed;
仍然不起作用,所以我测试了我之前链接到的so问题中的示例

html = '&#196;'
soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)
print soup.contents[0].string
>>> Ä

这个有效。有人看到我遗漏了什么吗?

使用
HTMLParser.HTMLParser.unescape

>>> import HTMLParser
>>> parser = HTMLParser.HTMLParser()
>>> parser.unescape('&#xed;')
u'\xed'
>>> print parser.unescape('&#xed;')
í
在Python 3.x中:

>>> import html.parser
>>> parser = html.parser.HTMLParser()
>>> parser.unescape('&#xed;')
'í'

谢谢为什么BS解决方案适用于“Ä;”但不是í@用户2958776,看起来BS不转换十六进制形式的html实体。是解决方法。@user2958776,发布另一个单独的问题。
>>> import html.parser
>>> parser = html.parser.HTMLParser()
>>> parser.unescape('&#xed;')
'í'