2014-12-12 13 views
7

Tôi muốn in mã ký tự unicode và không phải là glyph thực mà nó đại diện bằng Python.Làm cách nào để in mã ký tự Unicode bằng Python?

Ví dụ, nếu u là danh sách các ký tự unicode:

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

Tôi muốn đầu ra mã ký tự như là một chuỗi liệu: u'\u0103'.

Tôi đã cố gắng in nó vào một tệp, nhưng điều này không hoạt động nếu không mã hóa nó trong 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() 

Mã hóa kết quả trong glyph ă được ghi vào tệp.

Tôi có thể viết mã ký tự bằng cách nào?

Trả lời

6

Đối in nguyên một dữ liệu unicode chỉ cần xác định mã hóa chính xác:

>>> s = u'\u0103' 
>>> print s.encode('raw_unicode_escape') 
\u0103 
Các vấn đề liên quan