unicodedata — Unicode Database


This module provides access to the Unicode Character Database (UCD) which defines character properties for all Unicode characters. The data contained in this database is compiled from the UCD version 15.1.0.

Модуль використовує ті самі назви та символи, як визначено в стандартному додатку Юнікод №44, «База даних символів Юнікоду». Він визначає такі функції:

Дивись також

The Юнікод HOWTO for more information about Unicode and how to use this module.

unicodedata.lookup(name)

Look up character by name. If a character with the given name is found, return the corresponding character. If not found, KeyError is raised. For example:

>>> unicodedata.lookup('LEFT CURLY BRACKET')
'{'

The characters returned by this function are the same as those produced by \N escape sequence in string literals. For example:

>>> unicodedata.lookup('MIDDLE DOT') == '\N{MIDDLE DOT}'
True

Змінено в версії 3.3: Додано підтримку псевдонімів імен [1] та іменованих послідовностей [2].

unicodedata.name(chr, default=None, /)

Returns the name assigned to the character chr as a string. If no name is defined, default is returned, or, if not given, ValueError is raised. For example:

>>> unicodedata.name('½')
'VULGAR FRACTION ONE HALF'
>>> unicodedata.name('\uFFFF', 'fallback')
'fallback'
unicodedata.decimal(chr, default=None, /)

Returns the decimal value assigned to the character chr as integer. If no such value is defined, default is returned, or, if not given, ValueError is raised. For example:

>>> unicodedata.decimal('\N{ARABIC-INDIC DIGIT NINE}')
9
>>> unicodedata.decimal('\N{SUPERSCRIPT NINE}', -1)
-1
unicodedata.digit(chr, default=None, /)

Returns the digit value assigned to the character chr as integer. If no such value is defined, default is returned, or, if not given, ValueError is raised:

>>> unicodedata.digit('\N{SUPERSCRIPT NINE}')
9
unicodedata.numeric(chr, default=None, /)

Returns the numeric value assigned to the character chr as float. If no such value is defined, default is returned, or, if not given, ValueError is raised:

>>> unicodedata.numeric('½')
0.5
unicodedata.category(chr)

Returns the general category assigned to the character chr as string. General category names consist of two letters. See the General Category Values section of the Unicode Character Database documentation for a list of category codes. For example:

>>> unicodedata.category('A')  # 'L'etter, 'u'ppercase
'Lu'
unicodedata.bidirectional(chr)

Returns the bidirectional class assigned to the character chr as string. If no such value is defined, an empty string is returned. See the Bidirectional Class Values section of the Unicode Character Database documentation for a list of bidirectional codes. For example:

>>> unicodedata.bidirectional('\N{ARABIC-INDIC DIGIT SEVEN}') # 'A'rabic, 'N'umber
'AN'
unicodedata.combining(chr)

Returns the canonical combining class assigned to the character chr as integer. Returns 0 if no combining class is defined. See the Canonical Combining Class Values section of the Unicode Character Database for more information.

unicodedata.east_asian_width(chr)

Returns the east asian width assigned to the character chr as string. For a list of widths and or more information, see the Unicode Standard Annex #11.

unicodedata.mirrored(chr)

Returns the mirrored property assigned to the character chr as integer. Returns 1 if the character has been identified as a «mirrored» character in bidirectional text, 0 otherwise. For example:

>>> unicodedata.mirrored('>')
1
unicodedata.decomposition(chr)

Returns the character decomposition mapping assigned to the character chr as string. An empty string is returned in case no such mapping is defined. For example:

>>> unicodedata.decomposition('Ã')
'0041 0303'
unicodedata.normalize(form, unistr)

Повертає звичайну форму form для рядка Unicode unistr. Дійсні значення для форми: «NFC», «NFKC», «NFD» і «NFKD».

Стандарт Unicode визначає різні форми нормалізації рядка Unicode на основі визначення канонічної еквівалентності та еквівалентності сумісності. У Unicode декілька символів можуть бути виражені різними способами. Наприклад, символ U+00C7 (ВЕЛИКА ЛАТИНСЬКА ЛІТЕРА C ІЗ СЕДІЛЛОЮ) також можна виразити як послідовність U+0043 (ВЕЛИКА ЛАТИНСЬКА ЛІТЕРА C) U+0327 (ПОЄДНАННЯ СЕДІЛЛИ).

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

In addition to these two forms, there are two additional normal forms based on compatibility equivalence. In Unicode, certain characters are supported which normally would be unified with other characters. For example, U+2160 (ROMAN NUMERAL ONE) is really the same thing as U+0049 (LATIN CAPITAL LETTER I). However, it is supported in Unicode for compatibility with existing character sets (for example, gb2312).

The normal form KD (NFKD) will apply the compatibility decomposition, that is, replace all compatibility characters with their equivalents. The normal form KC (NFKC) first applies the compatibility decomposition, followed by the canonical composition.

Навіть якщо два рядки Unicode нормалізовані та виглядають однаково для людини, яка читає, якщо в одному є символи комбінування, а в іншому немає, вони можуть не порівнюватися.

unicodedata.is_normalized(form, unistr)

Повертає, чи рядок Unicode unistr має звичайну форму form. Дійсні значення для форми: «NFC», «NFKC», «NFD» і «NFKD».

Added in version 3.8.

Крім того, модуль надає таку константу:

unicodedata.unidata_version

Версія бази даних Unicode, що використовується в цьому модулі.

unicodedata.ucd_3_2_0

Це об’єкт, який має ті самі методи, що й увесь модуль, але замість цього використовує базу даних Unicode версії 3.2 для програм, які потребують цієї конкретної версії бази даних Unicode (наприклад, IDNA).

Виноски