このモジュールは、全ての Unicode 文字の属性を定義している Unicode 文字データベースへのアクセスを提供します。このデータベース内のデータは、ftp://ftp.unicode.org/ で公開されている UnicodeData.txt ファイルのバージョン 4.1.0 に基づいています。
このモジュールは、UnicodeData ファイルフォーマット 4.1.0 (http://www.unicode.org/Public/4.1.0/ucd/UCD.html を参照)で定義されているものと、同じ名前と記号を使います。このモジュールで定義されている関数は、以下のとおりです。
name) |
unichr[, default]) |
unichr[, default]) |
unichr[, default]) |
unichr[, default]) |
unichr) |
unichr) |
unichr) |
0
が返されます。
unichr) |
unichr) |
1
を、それ以外の場合には 0
を返します。
unichr) |
form, unistr) |
Unicode 文字列 unistr の正規形 form を返します。 form の有効な値は、'NFC'、'NFKC'、'NFD'、'NFKD' です。
Unicode 規格は標準等価性 (canonical equivalence) と 互換等価性 (compatibility equivalence) に基づいて、様々な Unicode文字列の正規形を定義します。Unicode では、複数の方法で表現できる文字があります。たとえば、文字 U+00C7 (LATIN CAPITAL LETTER C WITH CEDILLA) は、U+0043 (LATIN CAPITAL LETTER C) U+0327 (COMBINING CEDILLA) というシーケンスとしても表現できます。
各文字には、2つの正規形があり、それぞれ 正規形 C と 正規形 D といいます。正規形 D (NFD) は標準分解 (canonical decomposition) としても知られており、各文字を分解された形に変換します。正規形 C (NFC) は標準分解を適用した後、結合済文字を再構成します。
互換等価性に基づいて、2つの正規形が加えられています。Unicode では、一般に他の文字との統合がサポートされている文字があります。たとえば、U+2160 (ROMAN NUMERAL ONE) は事実上 U+0049 (LATIN CAPITAL LETTER I) と同じものです。しかし、Unicode では、既存の文字集合 (たとえば gb2312) との互換性のために、これがサポートされています。
正規形 KD (NFKD) は、互換分解 (compatibility decomposition) を適用します。すなわち、すべての互換文字を、等価な文字で置換します。 正規形 KC (NFKC) は、互換分解を適用してから、標準分解を適用します。
バージョン 2.3 で 新たに追加 された仕様です。
更に、本モジュールは以下の定数を公開します。
バージョン 2.3 で 新たに追加 された仕様です。
バージョン 2.5 で 新たに追加 された仕様です。
例:
>>> 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 ? ValueError: not a decimal >>> unicodedata.category(u'A') # 'L'etter, 'u'ppercase 'Lu' >>> unicodedata.bidirectional(u'\u0660') # 'A'rabic, 'N'umber 'AN'