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秒