'拜仁慕尼黑' - > '拜仁慕尼黑'

时间:2012-02-19 02:37:23

标签: python encoding decoding

解码字符串的最简单方法是:

 'Bayern München' -> 'Bayern München'

我正在寻找轻量级的东西,也许字符串替换会很好,尽管更强大的解决方案会让我更快乐。我希望encodedecode方法有所帮助,但到目前为止我没有运气。

对于上下文我正在从网页上抓取少量信息,我不想要一个重量级的解决方案(曾经看过scrapy但是虽然这对我来说太棒了)。该页面报告了一个utf-8编码,但我不知道如何从那里转到带有变音符号的字符串,我可以打印给用户。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

我试图对此进行研究,但是SO或其他方面的其他答案都没有帮助我。例如,Beautiful Soup不处理这些十六进制代码。

这是我编码的第一个真正的问题,如果我打开了一堆蠕虫,请对不起,请耐心等待。

1 个答案:

答案 0 :(得分:4)

看起来这可以在Python 2.6或更高版本中使用:

import HTMLParser     # html.parser in Python 3
h = HTMLParser.HTMLParser()
h.unescape('Bayern M&#xFC;nchen')

从技术上讲,这是“内部的”并且没有文档记录,但它已经在API中存在了很长一段时间,并且没有标记为前导下划线。

找到它here;还提到了其他方法,如果你不介意它的“沉重感”,BeautifulSoup可能是最好的。