Почему unicodedata не распознает определенные символы?
В Python 2 по крайней мере,unicodedata.name()
не распознает определенные символы.
ActivePython 2.7.0.2 (ActiveState Software Inc.) based on
Python 2.7 (r27:82500, Aug 23 2010, 17:17:51) [MSC v.1500 64 bit (AMD64)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> from unicodedata import name
>>> print(u'\n')
>>> name(u'\n')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: no such name
>>> name(u'a')
'LATIN SMALL LETTER A'
>>>
(Первыйprint
чтобы продемонстрировать, что сам Python распознаетu'\n'
как новая строка.)
Конечно юникодсодержит характер\n
и у него есть название, а именно «LINE FEED».
NB.unicodedata.lookup('LINE FEED')
а такжеunicodedata.lookup(u'LINE FEED')
оба дают KeyError: неопределенное имя символа.