python2中html实体的解码
我有一个转义的html标记字符串,python2中html实体的解码,python,utf-8,Python,Utf 8,我有一个转义的html标记字符串,í;',我希望它是正确的重音字符“í” 读了这么多,这是我的尝试: messy = 'í' print type(messy) >>> <type 'str'> decoded=messy.decode('utf-8') print decoded >>> í 仍然不起作用,所以我测试了我之前链接到的so问题中的示例 html = 'Ä' soup
í;'代码>,我希望它是正确的重音字符“í”
读了这么多,这是我的尝试:
messy = 'í'
print type(messy)
>>> <type 'str'>
decoded=messy.decode('utf-8')
print decoded
>>> í
仍然不起作用,所以我测试了我之前链接到的so问题中的示例
html = 'Ä'
soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)
print soup.contents[0].string
>>> Ä
这个有效。有人看到我遗漏了什么吗?使用HTMLParser.HTMLParser.unescape
:
>>> import HTMLParser
>>> parser = HTMLParser.HTMLParser()
>>> parser.unescape('í')
u'\xed'
>>> print parser.unescape('í')
í
在Python 3.x中:
>>> import html.parser
>>> parser = html.parser.HTMLParser()
>>> parser.unescape('í')
'í'
谢谢为什么BS解决方案适用于“Ä;”但不是í@用户2958776,看起来BS不转换十六进制形式的html实体。是解决方法。@user2958776,发布另一个单独的问题。
>>> import html.parser
>>> parser = html.parser.HTMLParser()
>>> parser.unescape('í')
'í'