Spec-Zone.ru › Python 2.7

unicodedata — База данных Unicode

Этот модуль предоставляет доступ к базе данных символов Юникода, которая определяет свойства символов для всех символов Юникода. Данные в этой базе данных основаны на версии файла UnicodeData.txt 5.2.0, которая публично доступна по адресу ftp://ftp.unicode.org/.

Модуль использует те же имена и символы, что и в формате файла UnicodeData 5.2.0 (см. https://www.unicode.org/reports/tr44/). Он определяет следующие функции:

unicodedata.lookup(name)

Поиск символа по имени. Если символ с данным именем найден, возвращается соответствующий символ Юникода. В противном случае, возбуждается исключение KeyError.

unicodedata.name(unichr[, default])

Возвращает имя, присвоенное символу Юникода unichr, в виде строки. Если имя не определено, возвращается default, или, если оно не задано, возбуждается исключение ValueError.

unicodedata.decimal(unichr[, default])

Возвращает десятичное значение, присвоенное символу Юникода unichr, в виде целого числа. Если такое значение не определено, возвращается default, или, если оно не задано, возбуждается исключение ValueError.

unicodedata.digit(unichr[, default])

Возвращает значение цифры, присвоенное символу Юникода unichr, в виде целого числа. Если такое значение не определено, возвращается default, или, если оно не задано, возбуждается исключение ValueError.

unicodedata.numeric(unichr[, default])

Возвращает числовое значение, присвоенное символу Юникода unichr, в виде числа с плавающей точкой. Если такое значение не определено, возвращается default, или, если оно не задано, возбуждается исключение ValueError.

unicodedata.category(unichr)

Возвращает общую категорию, присвоенную символу Юникода unichr, в виде строки.

unicodedata.bidirectional(unichr)

Возвращает класс двунаправленности, присвоенный символу Юникода unichr, в виде строки. Если такое значение не определено, возвращается пустая строка.

unicodedata.combining(unichr)

Возвращает канонический класс объединения, присвоенный символу Юникода unichr, в виде целого числа. Возвращает 0 если класс объединения не определен.

unicodedata.east_asian_width(unichr)

Возвращает ширину восточноазиатского символа, присвоенную символу Юникода unichr, в виде строки.

Новое в версии 2.4.

unicodedata.mirrored(unichr)

Возвращает свойство отражения, присвоенное символу Юникода unichr, в виде целого числа. Возвращает 1 если символ был идентифицирован как «отражаемый» символ в двунаправленном тексте, 0 в противном случае.

unicodedata.decomposition(unichr)

Возвращает отображение разложения символа, присвоенное символу Юникода unichr, в виде строки. Возвращается пустая строка, если такое отображение не определено.

unicodedata.normalize(form, unistr)

Возвращает нормальную форму form для строки Юникода unistr. Допустимые значения для form — ‘NFC’, ‘NFKC’, ‘NFD’ и ‘NFKD’.

Стандарт Юникода определяет различные формы нормализации строки Юникода, основанные на определении канонического эквивалента и эквивалента совместимости. В Юникоде несколько символов могут быть выражены различными способами. Например, символ U+00C7 (ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА C С ЦЕДИЛЬЮ) также может быть выражен как последовательность U+0043 (ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА C) U+0327 (КОМБИНИРУЮЩАЯ ЦЕДИЛЬЯ).

Для каждого символа существуют две нормальные формы: нормальная форма C и нормальная форма D. Нормальная форма D (NFD) также известна как каноническое разложение и преобразует каждый символ в его разложенную форму. Нормальная форма C (NFC) сначала применяет каноническое разложение, а затем снова объединяет предварительно объединённые символы.

Помимо этих двух форм, существуют две дополнительные нормальные формы, основанные на эквивалентности совместимости. В Юникоде поддерживаются определённые символы, которые обычно объединяются с другими символами. Например, U+2160 (РИМСКАЯ ЦИФРА ОДИН) фактически то же самое, что и U+0049 (ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА I). Однако он поддерживается в Юникоде для совместимости с существующими наборами символов (например, gb2312).

Нормальная форма KD (NFKD) применит разложение совместимости, т.е. заменит все символы совместимости их эквивалентами. Нормальная форма KC (NFKC) сначала применит разложение совместимости, а затем каноническое объединение.

Даже если две строки Юникода нормализованы и выглядят одинаково для человека, если одна содержит объединяющие символы, а другая нет, они могут не сравниваться как равные.

Новое в версии 2.3.

Кроме того, модуль предоставляет следующую константу:

unicodedata.unidata_version

Версия базы данных Юникода, используемая в этом модуле.

Новое в версии 2.3.

unicodedata.ucd_3_2_0

Это объект, имеющий те же методы, что и весь модуль, но использующий базу данных Юникода версии 3.2 вместо этого, для приложений, которым требуется эта конкретная версия базы данных Юникода (например, IDNA).

Новое в версии 2.5.

Примеры:

>>> import unicodedata
>>> unicodedata.lookup('LEFT CURLY BRACKET')
u'{'
>>> unicodedata.name(u'/')
'SOLIDUS'
>>> unicodedata.decimal(u'9')
9
>>> unicodedata.decimal(u'a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: not a decimal
>>> unicodedata.category(u'A')  # 'L'etter, 'u'ppercase
'Lu'
>>> unicodedata.bidirectional(u'\u0660') # 'A'rabic, 'N'umber
'AN'

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/unicodedata.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API