2014-07-31 2 views
3

Пытается получить символ Юникода (уникальным) именем в python 2.7. Метод, который я нашел в docs не работает для меня:Как найти символы Юникода по их описательным именам?

>>> import unicodedata 
>>> print unicodedata.lookup('PILE OF POO') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
KeyError: "undefined character name 'PILE OF POO'" 

ответ

5

Проблема заключается в том, что PILE OF POO была введена с Unicode 6. Однако, данные unicodedata в основном старые, версии 5.X или так , Документы говорят:

Модуль использует одни и те же имена и символы, определенные в UnicodeData Формат файла 5.2.0 (см http://www.unicode.org/reports/tr44/tr44-4.html).

Это значит, что вам также не повезло почти со всеми Emoji and hieroglyphs (если вы находитесь в египтологии).

+0

Python 2.7 использует Unicode 5.2, Python 3.4 использует 6.3 в соответствии с документацией. Другие версии 3.x, вероятно, используют соответственно более старые данные Unicode. – delnan

+0

Работает на Python 3.4.0. – geoffspear

+1

unicodedata.unidata_version дает версию Unicode, используемую вашим Python. Он должен быть> = 6.0, чтобы получить PILE OF POO. –

Смежные вопросы