2014-12-12 15 views
7

Ich möchte einen Unicode-Zeichencode und nicht die tatsächliche Glyphe, die es in Python darstellt, drucken.Wie wird ein Unicode-Zeichencode in Python gedruckt?

Zum Beispiel, wenn u eine Liste von Unicode-Zeichen ist:

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

Ich mag würde den Zeichencode als Ausgangsfolge ausgegeben: u'\u0103'.

Ich habe versucht, es nur in eine Datei zu drucken, aber das funktioniert nicht, ohne es in UTF-8 zu codieren.

>>> 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() 

Encoding es in der Glyphe führt ă in die Datei geschrieben werden.

Wie kann ich den Zeichencode schreiben?

Antwort

6

Zum Drucken rohen Unicode-Daten einen braucht nur die richtige Codierung angeben:

>>> s = u'\u0103' 
>>> print s.encode('raw_unicode_escape') 
\u0103 
Verwandte Themen