将字符串从xmlcharrefreplace转换回utf-8

时间:2013-06-27 11:12:38

标签: python utf-8 encode unicode-string

我接下来是代码的一部分:

In [8]: st = u"опа"

In [11]: st.encode("ascii", "xmlcharrefreplace")
Out[11]: 'опа'

In [14]: st1 = st.encode("ascii", "xmlcharrefreplace")

In [15]: st1.decode("ascii", "xmlcharrefreplace")
Out[15]: u'опа'

In [16]: st1.decode("utf-8", "xmlcharrefreplace")
Out[16]: u'опа'

您是否知道如何将st1转换回u"опа"

1 个答案:

答案 0 :(得分:17)

使用html.unescape() function(Python 3.4及更高版本):

>>> import html
>>> html.unescape('опа')
'опа'

在旧版本(包括Python 2)上,您必须使用HTMLParser.HTMLParser()的实例:

>>> from HTMLParser import HTMLParser
>>> parser = HTMLParser()
>>> parser.unescape('опа')
u'\u043e\u043f\u0430'
>>> print parser.unescape('опа')
опа