2013-06-10 6 views
6

Esiste un modo standard, preferibilmente Pythonic, per convertire la notazione &#xxxx; in una stringa Unicode corretta?Convertire la notazione di riferimento di caratteri numerici nella stringa unicode

Per esempio,

מפגשי 

devono essere convertiti in:

מפגשי 

Si può fare - abbastanza facilmente - con manipolazioni di stringhe, ma mi chiedo se c'è una libreria standard per questo.

+0

Suggerimento: che la notazione è chiamata [ "riferimento carattere numerico"] (https: // en. wikipedia.org/wiki/Numeric_character_reference). –

+0

+1 @JoachimSauer, grazie, aggiornato il titolo. –

+0

Correlati: http://stackoverflow.com/questions/3894564/replace-numeric-character-references-in-xml-document-using-python –

risposta

9

Uso HTMLParser.HTMLParser():

>>> from HTMLParser import HTMLParser 
>>> h = HTMLParser() 
>>> s = "מפגשי" 
>>> print h.unescape(s) 
מפגשי 

E 'parte del standard library, anche.


Tuttavia, se si sta utilizzando Python 3, è necessario importare da html.parser:

>>> from html.parser import HTMLParser 
>>> h = HTMLParser() 
>>> s = 'מפגשי' 
>>> print(h.unescape(s)) 
מפגשי 
+0

'unescape' sembra essere interno e non documentato. Esiste un modo "ufficiale"? – georg

+0

@ thg435 Non che io sappia, mi dispiace – TerryA

+0

Non l'ho trovato neanche io. Beh, questo fa schifo, vero? – georg

Problemi correlati