解码python2中的html实体

时间:2013-11-06 03:49:14

标签: python utf-8

我有一串转义的html标记'í',我希望它能使用正确的重音字符'í'

阅读了SO,这是我的尝试:

messy = 'í'
print type(messy)
>>> <type 'str'>

decoded=messy.decode('utf-8')
print decoded
>>> &#xed;

Drats。阅读here后,我尝试了这个:

from BeautifulSoup import *
soup = BeautifulSoup(messy, convertEntities=BeautifulSoup.HTML_ENTITIES)
print soup.contents[0].string
>>> &#xed;

仍然没有工作,所以我测试了我之前链接的SO问题的例子。

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

这个有效。有谁看到我错过了什么?

1 个答案:

答案 0 :(得分:0)

使用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;')
'í'