Unicodeの等価性

Unicodeには既存の標準との互換性を維持するための文字が多数存在する。それらの中には他の文字や文字の並びと機能的に等価なものが存在する。このため、Unicodeは数種類の等価性を定義している。たとえば、文字 n の後ろに結合文字 ~ を続けたものは、1つのUnicode文字 ñ と等価である。Unicodeは等価性を定義するために2つの標準を保守している。

正準等価 
正準等価（せいじゅんとうか、）は、視覚的および機能的に等価な文字を保存する、より狭い形態の等価性である。たとえば、ダイアクリティカルマークを持つ合成済みの文字は、分解すると「基底文字＋結合文字のダイアクリティカルマーク」の文字列に変わるが、いずれも等価であるとみなされる。言いかえると合成済み文字 ‘ü’ は ‘u’ と結合文字の分音記号 ‘¨’ を並べたものと正準等価である。同様に、Unicodeはいくつかのギリシャ文字のダイアクリティカルマークと約物を同じ外見の他のダイアクリティカルマークへ統合している。正規等価と表記されることもある。

互換等価 
互換等価（ごかんとうか、）は正準等価より広い概念である。正準等価であるものは何であれ互換等価でもあるが、逆は真とは限らない。正準等価でない互換等価な文字は、プレーンテキストでの等価性に懸念があり、そしてそれゆえに意味的に異なる形をとることがある。たとえば、上付きや下付きの数字は対応する通常の数字と互換等価である。しかし、下付きや上付きの形は — その視覚的な違いを通して — 通常異なる意味を伝える、しかし、この意味の違いはUnicodeの上層にあるリッチテキストのプロトコルを使ったほうが、より制限の少ない方法でうまく処理できる。たとえば、文字コードに含まれている下付きの数字は 0 から 9 までである。他の文字はリッチテキストのプロトコルを使った場合にのみ下付きにできる。そのためUnicodeはそのような視覚的で意味的な変化を付けるのはプレーンテキストではなく、リッチテキストの役割であると考えている。全角と半角の片仮名文字も等価であり、合字とその構成要素となる文字の並びも同様である。これらの後者の例では、通常視覚的な違いのみがあり意味的な区別はない。言いかえると、書き手は一般に合字や縦書きテキストの存在が何かの意味をあらわし、合字でないものや横書きテキストがまったく異なる意味を表すとは通常言明しない。むしろこれらは厳密に視覚的な組版デザインの選択である。

視覚的な曖昧さ 
正準等価な、もしくは正準等価でない文字の存在は、テキスト処理ソフトウェアの利用者に視覚的な曖昧さや混乱をもたらす場合がある。たとえば、ソフトウェアは一般に正準等価な文字を互いに区別不可能なように描画すべきである。もし利用者が片方の文字を検索したら、なぜソフトウェアが同じ外見の文字を強調表示しないのか理解できないかもしれない。正準等価でない文字についても、視覚的な曖昧さが生じることはありうる。たとえば、上付き数字がリッチテキストにより上付きにされた通常の数字と並んでいるときなどである。この状況を解決するために、Unicodeは特定の環境下でこれらの文字や文字の並びを同じものとして扱うよう正規化するテキスト処理アルゴリズムを推奨している。

参考資料
用語の日本語表記は次のものを参考にした。

関連項目 
Unicode正規化
合字
ダイアクリティカルマーク
合成済み文字
Unicodeの互換文字
複雑なテキスト配置

外部リンク 
Unicode Standard Annex #15: Unicode Normalization Forms (英語)

とうかせい