2013-06-27 23 views
9

mam Kolejna część kodu:Konwersja ciąg od xmlcharrefreplace powrotem na 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'опа' 

Czy macie jakiś pomysł jak konwertować st1 powrotem do u"опа"?

Odpowiedz

15

Korzystanie instancją HTMLParser.HTMLParser():

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

Jest doskonale pracować z 'u "опа"', ale nie działa w tym situatuion: '>>> z HTMLParser importowej HTMLParser' '> >> p = HTMLParser() ' ' >>> st = u "michel tel & # 243" ' ' >>> p.unescape (st) ' ' u'michel tel & # 243'' –

+2

@TuralGurbanov: That ponieważ zapomniałeś dodać ';': 'u'michel tel ó ''. Musisz przekazać * prawne * jednostki XML. –

+0

Och :) dziękuję. –