2

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

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

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

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

德拉斯。在这里阅读后,我尝试了这个:

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

仍然无法正常工作,所以我测试了我之前链接到的 SO question 中的示例。

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

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

4

1 回答 1

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;')
'í'
于 2013-11-06T03:54:04.160 回答