トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Unicode正規化

[カテゴリ:仕様]

Unicode正規化とは、Unicodeの仕様の一部で、同じ文字を表す方法が複数あるときに、ひとつの方法に揃えることを指します。

Unicodeには、アクセント記号等ダイアクリティカルマークのついた文字が多数あります。こうした文字の符号化の考え方として、ダイアクリティカルマークのついた形で収録することと、ベースの文字とダイアクリティカルマークとを別々に符号化して組み合わせることとがあります。

前者は例えばISO/IEC 8859-1に見られます。同規格にはa, e, oなどのアルファベットに対して、アキュートアクセントやウムラウト、サーカムフレックス等のダイアクリティカルマークがついた文字が収録されています。Unicodeはこれらをそのまま収録してもいますが、一方で、後者の考え方による合成用のダイアクリティカルマークも用意しており、基底文字(通常のアルファベット)に結合文字を後置することで、記号のついた文字を表現します。

日本語の平仮名片仮名濁点についても同様で、「が」という字を表すのに、単一の(合成済みの)符号位置で表すのと、「か」に合成用濁点を後置するのと、ふたとおりの符号化表現が可能です。

同じ文字に対する符号化表現が複数あるのは不都合なので、いずれかの方法にそろえる方法が正規化としてUnicode仕様に含まれています。

Unicodeの正規化には4種類あります。NFC, NFD, NFKC, NFKDの各形式です。名前に「C(omposition)」のつく形式は、合成済みの符号位置に極力そろえるもの、「D(ecomposition)」は分解した表現にそろえるものです。「K」のついたものは、(いわゆる)全角英数字を通常の英数字にそろえたり、あるいは丸付き数字をただの数字に変えるなどの変更を行います。

CJK互換漢字は、いずれの正規化形式でも、対応するCJK統合漢字に置き換えられます。

関連項目

最終更新時間:2024年03月30日 18時11分44秒