Python Glossary English

все Python 3unicodedataфункция

unicodedata.combining()

свойства символов

Возвращает класс канонического комбинирования символа — целое число; 0 у обычных букв, ненулевое у большинства надстрочных знаков.

Синтаксис

unicodedata.combining(chr, /)

Типичный рецепт «убрать диакритику» — NFD и выбросить символы с combining(c) != 0 — для русского текста ломает 'й': бреве тоже знак, и 'йод' превращается в 'иод'. Ноль не гарантирует, что символ не знак: у U+034F COMBINING GRAPHEME JOINER класс 0 при категории 'Mn'. Чтобы опознать знак, надёжнее category(c).startswith('M').

Примеры

import unicodedata
text = unicodedata.normalize('NFD', 'café, йод')
print(''.join(c for c in text if not unicodedata.combining(c)))  # → cafe, иод — й сломалась
print(unicodedata.combining('\u0301'), unicodedata.combining('\u034f'))  # → 230 0

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности