Я надеялся, что кто-то делал это раньше, но, видимо, нет, поэтому вот что я закончил. Модуль ниже (я называю это unicodedata2
) расширяет unicodedata
и предоставляет script_cat(chr)
, который возвращает кортеж (имя сценария, Caterogy) для символа юникода. Пример:
# coding=utf8
import unicodedata2
print unicodedata2.script_cat(u'Ф') #('Cyrillic', 'L')
print unicodedata2.script_cat(u'の') #('Hiragana', 'Lo')
print unicodedata2.script_cat(u'★') #('Common', 'So')
Модуль: https://gist.github.com/2204527