このモジュールは、全ての Unicode 文字の属性を定義している Unicode 文字データベースへのアクセスを提供します。このデータベース内のデータは、ftp://ftp.unicode.org/ で公開されている UnicodeData.txt ファイルのバージョン 5.2.0 に基づいています。
このモジュールは、UnicodeData ファイルフォーマット 5.2.0 (http://www.unicode.org/reports/tr44/tr44-4.html を参照) で定義されているものと、同じ名前と記号を使います。このモジュールで定義されている関数は、以下のとおりです。
名前に対応する文字を探します。その名前の文字が見つかった場合、その Unicode 文字が返されます。見つからなかった場合には、 KeyError を発生させます。
Unicode 文字 unichr に付いている名前を、文字列で返します。名前が定義されていない場合には default が返されますが、この引数が与えられていなければ ValueError を発生させます。
Unicode 文字 unichr に割り当てられている十進数を、整数で返します。この値が定義されていない場合には default が返されますが、この引数が与えられていなければ ValueError を発生させます。
Unicode 文字 unichr に割り当てられている二進数を、整数で返します。この値が定義されていない場合には default が返されますが、この引数が与えられていなければ ValueError を発生させます。
Unicode 文字 unichr に割り当てられている数値を、float 型で返します。この値が定義されていない場合には default が返されますが、この引数が与えられていなければ ValueError を発生させます。
Unicode 文字 unichr に割り当てられた、汎用カテゴリを返します。
Unicode 文字 unichr に割り当てられた、双方向カテゴリを返します。そのような値が定義されていない場合、空の文字列が返されます。
Unicode 文字 unichr に割り当てられた正規結合クラスを返します。結合クラス定義されていない場合、 0 が返されます。
unichr as string. ユニコード文字 unichr に割り当てられたeast asian widthを文字列で返します。
バージョン 2.4 で追加.
Unicode 文字 unichr に割り当てられた、鏡像化のプロパティを返します。その文字が双方向テキスト内で鏡像化された文字である場合には 1 を、それ以外の場合には 0 を返します。
Unicode 文字 unichr に割り当てられた、文字分解マッピングを、文字列型で返します。そのようなマッピングが定義されていない場合、空の文字列が返されます。
Unicode 文字列 unistr の正規形 form を返します。 form の有効な値は、’NFC’、’NFKC’、’NFD’、’NFKD’ です。
Unicode 規格は標準等価性 (canonical equivalence) と互換等価性 (compatibility equivalence) に基づいて、様々な Unicode文字列の正規形を定義します。Unicode では、複数の方法で表現できる文字があります。たとえば、文字 U+00C7 (LATIN CAPITAL LETTER C WITH CEDILLA) は、U+0327 (COMBINING CEDILLA) U+0043 (LATIN CAPITAL LETTER C) というシーケンスとしても表現できます。
各文字には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つのunicode文字列が正規化されていて人間の目に同じに見えても、片方が結合文字を持っていてもう片方が持っていない場合、それらは完全に同じではありません。
バージョン 2.3 で追加.
更に、本モジュールは以下の定数を公開します。
このモジュールで使われている Unicode データベースのバージョン。
バージョン 2.3 で追加.
これはモジュール全体と同じメソッドを具えたオブジェクトですが、Unicode データベースバージョン 3.2 を代わりに使っており、この特定のバージョンの Unicode データベースを必要とするアプリケーション(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 ?
ValueError: not a decimal
>>> unicodedata.category(u'A') # 'L'etter, 'u'ppercase
'Lu'
>>> unicodedata.bidirectional(u'\u0660') # 'A'rabic, 'N'umber
'AN'