2013-06-27 3 views
9

Ich habe nächsten Teil des Codes:Convert String aus xmlcharrefreplace zurück zu utf-8

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'опа' 

Haben Sie eine Ahnung, wie st1 zurück zu u"опа" konvertieren?

Antwort

15

mithilfe einer Instanz von HTMLParser.HTMLParser():

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

Es ist perfekt mit 'arbeiten u "опа"', aber funktioniert nicht in diesem situatuion: '>>> von HTMLParser Import HTMLParser' '> >> p = HTMLParser() ' ' >>> st = u "michel tel & # 243" ' ' >>> p.unseres (st) ' ' u'michel tel & # 243'' –

+2

@TuralGurbanov: Das weil du vergessen hast, das ';': 'u'michel tel ó '' hinzuzufügen. Sie müssen * legale * XML-Entitäten eingeben. –

+0

Oh :) danke. –