合成済文字

合成済文字

[1] Unicode では結合文字に対応する前進文字 (例えば ACUTE ACCENT) は間隔 + 結合文字 (例えば SPACE + COMBINING ACUTE ACCENT) と互換等価になっています。

ですから NFCNFD はよいのですが、 NFKCNFKD を適用してしまうと、 CSSwhite-space や各種プログラム言語の構文をはじめ、 元のものと違う結果が得られることになります。

(名無しさん [sage])

[2] ちなみに結合文字に対応する前進文字があればその文字互換等価性が定義されているかというと必ずしもそうではなく、 例えば GRAVE ACCENTSPACE + COMBINING GRAVE ACCENT互換等価ではありません。 (ASCII 文字から非ASCII文字への等価性を設定するのは憚られたのでしょうが、体系として美しいとはいえません。)

(名無しさん [sage])

[3] さらにちなみに、 U+02B0 からのブロックには MODIFIER LETTER ACUTE ACCENT など見るからに重複符号化なものが IPA 関連などと称して配置されていたりしますが、 この MODIFIER LETTER の類には正準等価互換等価も定義されていません。 こういう例は腐るほどあります。釣り詐欺には格好というか釣堀ですわな。 (名無しさん [sage])

[4] 正規化文字が変わってしまうのは大きな問題です。色々なものが色々なところで文字数に依存していますから。 (文字に関してバイト数オクテット数に依存しているものは問題外ということで。)

たとえば、正規表現文字クラス [がぎぐげご]NFCなら機能しますが、NFDだと意味が変わってしまいます。

(名無しさん [sage])

[5] >>4 たとえば Mac OS Xファイル名 (NFDの亜種) に適用する正規表現NFC 推奨のプログラミング言語中に書く時はどうするの? ファイル名はいちいち NFC に変換しないといけないの? (名無しさん [sage])

[6] i18n folk正規化転符号化器なるものを推し進めているらしいけど、 そんなものをつかったら一体何が起きるのだか? (名無しさん [sage])