Unicode正規化

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

Unicode正規化(ユニコードせいきか、英語: Unicode normalization)とは、等価な文字や文字の並びを統一的な内部表現に変換することでテキストの比較を容易にする、テキスト正規化処理の一種である。一般に、正規化はテキストの文字列を検索や整列のために比較(照合、英語: collation)するときに重要である[1]

合成と分解[編集]

Unicodeの正規化手段の基礎は、文字の合成と分解という概念である。文字の合成とは、文字 n と合成用の ~ 文字を単独の ñ 文字に変換するなどの、結合用のより単純な文字をより文字数の少ない合成済み文字にする手続きである。分解はその逆で、合成済みの文字を分割してその構成要素に戻す。

Unicodeは等価性と呼ばれるものに基づいて結合文字を合成し、互換文字を分解する。Unicodeはこの等価性の幅の変化に応じて、2種類の標準を持っている。1つは正準(英語: Canonical)と呼ばれ、機能的に等しく視覚的にも識別不可能であるべき文字を識別する。もう1つは互換文字(英語: Compatibility Character)と呼ばれ、視覚的に異なり意味的にも異なるかもしれないものを識別する。詳細はUnicodeの等価性Unicodeの互換文字の記事を参照。

正規化形式[編集]

Unicode標準附属書 UAX#15 では正規化に関して4種類の正規化形式を定義している。

正規化形式の一覧
名称(英語) 日本語名称 説明
NFD
Normalization Form Canonical Decomposition
正規化形式D 文字は正準等価性によって分解される。
NFC
Normalization Form Canonical Composition
正規化形式C 文字は正準等価性によって分解され、再度合成される。結果として文字の並びが変換前と変わることもありうる。
NFKD
Normalization Form Compatibility Decomposition
正規化形式KD 文字は互換等価性によって分解される。
NFKC
Normalization Form Compatibility Composition
正規化形式KC 文字は互換等価性によって分解され、正準等価性によって再度合成される。

上記の手法はすべて、文字の並びが正規化前にすでに分解されている場合も含め、分解された文字の出現順序を標準化する。これらは文字数が変化しなくても、文字や文字の並びを等価な文字やその並びに置き換えることがある。これらは正規化に要求されている符号化の一貫性を達成するために行われる。

参考資料[編集]

用語の日本語表記は原則として次にならった。Unicode Terminology English - Japanese”. Unicode, Inc. 2010年1月1日閲覧。

脚注[編集]

  1. ^ Unicodeの照合仕様は、正規化形式仕様とは別に、Unicode Technical Standard #10 "Unicode Collation Algorithm"で定義される。

関連項目[編集]

外部リンク[編集]