unicodedata – база данных Unicode¶unicodedata – Unicode Database
Этот модуль предоставляет доступ к базе данных символов Unicode (UCD), которая определяет свойства символов для всех символов Unicode. Данные, содержащиеся в этой базе, скомпилированы из UCD версии 16.0.0.
Модуль использует те же имена и символы, что определены в приложении №44 к стандарту Unicode, «Unicode Character Database». Он определяет следующие функции:
См. также
Дополнительную информацию о Unicode и о том, как использовать этот модуль, см. в Unicode HOWTO.
- unicodedata.lookup(name)¶
Ищет символ по имени. Если символ с указанным именем найден, возвращает соответствующий символ. Если не найден, возбуждается
KeyError. Например:>>> unicodedata.lookup('LEFT CURLY BRACKET') '{'
Символы, возвращаемые этой функцией, совпадают с теми, которые создаются управляющей последовательностью
\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, в виде строки. Имена общих категорий состоят из двух букв. Список кодов категорий см. в разделе General Category Values документации базы данных символов Unicode. Например:
>>> unicodedata.category('A') # 'L' – буква, 'u' – заглавная 'Lu'
- unicodedata.bidirectional(chr)¶
Возвращает класс двунаправленности, присвоенный символу chr, в виде строки. Если такое значение не определено, возвращается пустая строка. Список кодов двунаправленности см. в разделе Bidirectional Class Values документации базы данных символов Unicode. Например:
>>> unicodedata.bidirectional('\N{ARABIC-INDIC DIGIT SEVEN}') # 'A' – арабская, 'N' – число 'AN'
- unicodedata.combining(chr)¶
Возвращает канонический класс комбинирования, присвоенный символу chr, в виде целого числа. Возвращает
0, если класс комбинирования не определен. Дополнительную информацию см. в разделе Canonical Combining Class Values базы данных символов Unicode.
- unicodedata.east_asian_width(chr)¶
Возвращает ширину восточноазиатского символа, присвоенную символу chr, в виде строки. Список значений ширины и дополнительную информацию см. в Unicode Standard Annex #11.
- unicodedata.mirrored(chr)¶
Возвращает свойство зеркальности, присвоенное символу chr, в виде целого числа. Возвращает
1, если символ определен как «зеркальный» в двунаправленном тексте, и0в противном случае. Например:>>> unicodedata.mirrored('>') 1
- unicodedata.decomposition(chr)¶
Возвращает отображение разложения символа, присвоенное символу chr, в виде строки. Если такое отображение не определено, возвращается пустая строка. Например:
>>> unicodedata.decomposition('Ã') '0041 0303'
- unicodedata.normalize(form, unistr)¶
Возвращает нормальную форму form для строки Unicode unistr. Допустимые значения form: ‘NFC’, ‘NFKC’, ‘NFD’ и ‘NFKD’.
Стандарт Unicode определяет различные нормальные формы строки Unicode на основе определений канонической эквивалентности и эквивалентности совместимости. В Unicode одни и те же символы могут быть представлены по-разному. Например, символ U+00C7 (ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА C С СЕДИЛЬЮ) может также быть представлен как последовательность U+0043 (ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА C) U+0327 (СОЕДИНИТЕЛЬНАЯ СЕДИЛЬ).
Для каждого символа существует две нормальные формы: форма C и форма D. Нормальная форма D (NFD) также известна как каноническая декомпозиция и преобразует каждый символ в его разложенную форму. Нормальная форма C (NFC) сначала применяет каноническую декомпозицию, а затем снова составляет предварительно составные символы.
В дополнение к этим двум формам существуют ещё две нормальные формы, основанные на совместимой эквивалентности. В Unicode поддерживаются некоторые символы, которые обычно были бы объединены с другими символами. Например, U+2160 (РИМСКАЯ ЦИФРА ОДИН) на самом деле то же самое, что и U+0049 (ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА 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¶
Это объект, который имеет те же методы, что и весь модуль, но использует версию базы данных Unicode 3.2 для приложений, которым требуется эта конкретная версия базы данных Unicode (например, IDNA).
Сноски
Эта страница – перевод. Оригинал на английском – docs.python.org. Нашли неточность? Сообщите нам.