正準合成

正準等価性

[1] 正準等価性 (canonical equivalence) は、 基底文字結合文字の列と合成済文字とを同一視するなどとした文字等価性です。 正準等価性を保ちつつできるだけ基底文字結合文字の列に分解することを正準分解 (canonical decomposition) 、 できるだけ合成済文字結合することを正準結合 (canonical composition) といいます。

仕様書

定義

[14] 正準分解 (canonical decomposition) : Unicode Character DatabaseConjoining Jamo Behavior にある正準写像をそれ以上分解できる文字がなくなるまで再帰的に適用し、 Normalization Forms に従い現在位置の前進を伴わない記号を並べ替えて得られる文字または文字の列の分解>>13 D68

正準写像

[15] 正準写像 (canonical mapping) は、ハングル音節については符号位置の計算により、 それ以外については Unicode Character Database に含まれる表により定義されています。

歴史

訂正 #3

[5] Unicode 3.0.0 から Unicode 3.1.1 までの間、U+F951 CJK COMPATIBILITY IDEOGRAPH-F951正準分解が誤っていたとして、 訂正 (Corrigendum) #3 で修正されています。 Unicode 3.2.0 以降は正しくなっています。 >>4

[6] 旧版では U+96FB という全く関係ない漢字正準分解されることになっていましたが、 新版では U+964B となっています。 >>4

[7] この漢字は余り使われていないし、弱い正規化安定性は満たされているので問題ないだろう >>4 とされていますが、全く違う文字正規化されていて問題ないも何もないですねwww (この当時は強い正規化安定性は保証されていませんでした。)

訂正 #4

[8] Unicode 3.2.0 において5つのCJK互換漢字正準分解が誤っていたとして、 訂正 (Corrigendum) #4 で修正されています。 Unicode 4.0.0 以降は正しくなっています。 >>9

CJK互換漢字誤 (Unicode 3.2.0)正 (Unicode 4.0.0)
U+2F868U+2136AU+36FC
U+2F874U+5F33U+5F53
U+2F91FU+43ABU+243AB
U+2F95FU+7AAEU+7AEE
U+2F9BFU+4D57U+45D7
[10] U+2F868 は似た漢字との混同、それ以外は符号位置の入力ミスのようです。
[11] 今回は稀な文字だから問題ないなどという言い訳はありませんw

関連

[2] 正準等価性よりも同じとみなされる範囲が広い等価性互換等価性もあります。

[3] 正準分解NFCNFD で使われています。正準結合NFCNFKC で使われています。