2014-12-12 21 views
7

Vorrei stampare un codice carattere di unicode e non il glifo effettivo che rappresenta in Python.Come si stampa un codice carattere Unicode in Python?

Ad esempio, se u è un elenco di caratteri unicode:

>>> u[0] 
u'\u0103' 
>>> print u[0] 
ă 

Vorrei uscita il codice di carattere come stringa grezzo: u'\u0103'.

Ho provato a stampare solo su un file, ma questo non funziona senza codificarlo in UTF-8.

>>> w = open('~/foo.txt', 'w') 
>>> print>>w, u[0].decode('utf-8') 

Traceback (most recent call last): 
    File "<pyshell#33>", line 1, in <module> 
    print>>w, u[0].decode('utf-8') 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py", line 16, in decode 
    return codecs.utf_8_decode(input, errors, True) 
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0103' in position 0: ordinal not in range(128) 
>>> print>>w, u[0].encode('utf-8') 
>>> w.close() 

codifica il risultato e il glifo ă essere scritte nel file.

Come posso scrivere il codice del carattere?

risposta

6

Per la stampa RAW uno dati Unicode solo bisogno di specificare la corretta codifica:

>>> s = u'\u0103' 
>>> print s.encode('raw_unicode_escape') 
\u0103 
Problemi correlati