все Python 3unicodedataфункция
unicodedata.decomposition()
нормализация
Возвращает разложение символа строкой шестнадцатеричных кодов, например '0438 0306' для 'й'; пустую строку, если раскладывать нечего.
Синтаксис
unicodedata.decomposition(chr, /)
Результат — текст, а не символы: чтобы получить строку, коды надо разобрать через int(x, 16) и chr(). Тег в угловых скобках ('<compat>', '<super>') означает совместимое разложение: его применяет только NFKC/NFKD, и смысл символа при этом меняется ('²' → '2'). Для самой нормализации проще normalize() — decomposition() показывает один шаг и не рекурсивна.
Примеры
import unicodedata
print(unicodedata.decomposition('й')) # → 0438 0306
print(unicodedata.decomposition('²'), repr(unicodedata.decomposition('a'))) # → <super> 0032 ''
print(''.join(chr(int(x, 16)) for x in unicodedata.decomposition('й').split()) == 'и\u0306') # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности