Python Glossary English

все 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Сообщить о неточности