unicodedata — база данных Unicode
Этот модуль предоставляет доступ к базе данных символов Unicode (UCD), в которой определены свойства всех символов Unicode. Данные в этой базе данных скомпилированы на основе версии UCD 16.0.0.
В модуле используются те же имена и символы, что и в приложении № 44 к стандарту Unicode — «База данных символов Unicode». В нём определены следующие функции:
См. также
Руководство по Unicode содержит дополнительную информацию о Unicode и использовании этого модуля.
-
unicodedata.lookup(name) -
Находит символ по имени. Если символ с указанным именем найден, возвращает соответствующий символ. Если символ не найден, вызывается
KeyError. Например:>>> unicodedata.lookup('LEFT CURLY BRACKET') '{'Символы, возвращаемые этой функцией, совпадают с символами, получаемыми с помощью escape-последовательности
\Nв строковых литералах. Например:>>> unicodedata.lookup('MIDDLE DOT') == '\N{MIDDLE DOT}' True
-
unicodedata.name(chr, default=None, /) -
Возвращает в виде строки имя, присвоенное символу chr. Если имя не определено, возвращается значение default; если оно не задано, вызывается
ValueError. Например:>>> unicodedata.name('½') 'VULGAR FRACTION ONE HALF' >>> unicodedata.name('\uFFFF', 'fallback') 'fallback'
-
unicodedata.decimal(chr, default=None, /) -
Возвращает целочисленное десятичное значение, присвоенное символу chr. Если такое значение не определено, возвращается значение default; если оно не задано, вызывается
ValueError. Например:>>> unicodedata.decimal('\N{ARABIC-INDIC DIGIT NINE}') 9 >>> unicodedata.decimal('\N{SUPERSCRIPT NINE}', -1) -1
-
unicodedata.digit(chr, default=None, /) -
Возвращает целочисленное значение цифры, присвоенное символу chr. Если такое значение не определено, возвращается значение default; если оно не задано, вызывается
ValueError:>>> unicodedata.digit('\N{SUPERSCRIPT NINE}') 9
-
unicodedata.numeric(chr, default=None, /) -
Возвращает числовое значение с плавающей точкой, присвоенное символу chr. Если такое значение не определено, возвращается значение default; если оно не задано, вызывается
ValueError:>>> unicodedata.numeric('½') 0.5
-
unicodedata.category(chr) -
Возвращает в виде строки общую категорию, присвоенную символу chr. Названия общих категорий состоят из двух букв. Список кодов категорий см. в разделе «Значения общих категорий» документации базы данных символов Unicode. Например:
>>> unicodedata.category('A') # 'L'etter, 'u'ppercase 'Lu'
-
unicodedata.bidirectional(chr) -
Возвращает в виде строки класс двунаправленного текста, присвоенный символу chr. Если такое значение не определено, возвращается пустая строка. Список кодов классов двунаправленного текста см. в разделе «Значения классов двунаправленного текста» документации базы данных символов Unicode. Например:
>>> unicodedata.bidirectional('\N{ARABIC-INDIC DIGIT SEVEN}') # 'A'rabic, 'N'umber 'AN'
-
unicodedata.combining(chr) -
Возвращает целочисленный класс канонического комбинирования, присвоенный символу chr. Возвращает
0, если класс комбинирования не определён. Дополнительную информацию см. в разделе «Значения классов канонического комбинирования» базы данных символов Unicode.
-
unicodedata.east_asian_width(chr) -
Возвращает в виде строки восточноазиатскую ширину, присвоенную символу chr. Список значений ширины и дополнительную информацию см. в приложении № 11 к стандарту Unicode.
-
unicodedata.mirrored(chr) -
Возвращает целочисленное значение свойства зеркального отображения, присвоенного символу chr. Возвращает
1, если символ определён как «зеркальный» в двунаправленном тексте, и0в противном случае. Например:>>> unicodedata.mirrored('>') 1
-
unicodedata.decomposition(chr) -
Возвращает в виде строки отображение разложения символа, присвоенное символу chr. Если такое отображение не определено, возвращается пустая строка. Например:
>>> unicodedata.decomposition('Ã') '0041 0303'
-
unicodedata.normalize(form, unistr) -
Возвращает строку Unicode unistr в нормальной форме form. Допустимые значения form: ‘NFC’, ‘NFKC’, ‘NFD’ и ‘NFKD’.
Стандарт Unicode определяет различные формы нормализации строки Unicode на основе понятий канонической эквивалентности и эквивалентности совместимости. В Unicode некоторые символы могут быть представлены разными способами. Например, символ U+00C7 (LATIN CAPITAL LETTER C WITH CEDILLA) также может быть представлен последовательностью U+0043 (LATIN CAPITAL LETTER C) U+0327 (COMBINING CEDILLA).
Для каждого символа существуют две нормальные формы: нормальная форма C и нормальная форма D. Нормальная форма D (NFD), также известная как каноническое разложение, преобразует каждый символ в его разложенную форму. Нормальная форма C (NFC) сначала выполняет каноническое разложение, а затем снова объединяет предварительно составные символы.
Помимо этих двух форм, существуют ещё две нормальные формы, основанные на эквивалентности совместимости. В Unicode поддерживаются определённые символы, которые обычно можно было бы объединить с другими символами. Например, U+2160 (ROMAN NUMERAL ONE) по сути является тем же символом, что и U+0049 (LATIN CAPITAL LETTER I). Однако он поддерживается в Unicode для совместимости с существующими наборами символов (например, gb2312).
Нормальная форма KD (NFKD) выполняет разложение совместимости, то есть заменяет все символы совместимости их эквивалентами. Нормальная форма KC (NFKC) сначала выполняет разложение совместимости, а затем каноническое объединение.
Даже если две строки Unicode нормализованы и выглядят одинаково для человека, они могут не сравниваться как равные, если одна содержит комбинируемые символы, а другая — нет.
-
unicodedata.is_normalized(form, unistr) -
Возвращает значение, указывающее, находится ли строка Unicode unistr в нормальной форме form. Допустимые значения form: ‘NFC’, ‘NFKC’, ‘NFD’ и ‘NFKD’.
Добавлено в версии 3.8.
Кроме того, модуль предоставляет следующую константу:
-
unicodedata.unidata_version -
Версия базы данных Unicode, используемая в этом модуле.
-
unicodedata.ucd_3_2_0 -
Это объект с теми же методами, что и у всего модуля, но использующий версию 3.2 базы данных Unicode. Он предназначен для приложений, которым требуется именно эта версия базы данных Unicode (например, IDNA).
Сноски
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/unicodedata.html