Как печатать код символа Юникода в Python?

Я хотел бы напечатать код символа unicode, а не фактический глиф, который он представляет в Python.

, если u список символов Юникода:
>>> u[0]
u'u0103'
>>> print u[0]
ă

Я хотел бы вывести код символа в виде необработанной строки:u'u0103'.

Я попытался просто распечатать его в файл, но это не работает без кодирования его в 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()

кодирование приводит к глифу ă записывается на файл.

как я могу написать код символа?

1 ответов


для печати необработанных данных Юникода нужно только указать правильную кодировку:

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