ものがたり(旧)

atsushieno.hatenablog.com に続く

Unicode Normalization followups

Journal In Timeで例のUnicode Normalizationについて言及されています。なるほどー、見てみると、確かに3099hの事を書いていますね。ということはcombining-*-markを前提としている例の表自体は間違っていなさそうです。

うーん、だとすると、実質的にUnicodeでは濁点付きかな文字の照合なんてあって無きがごとしということですよねぇ。309Bh(JIS X 0208の814Ah)ではなく3099hにマッピングしている日本語変換表なんて存在しないっぽいですし。

あっと、で、勘違いしてほしくないんですが、これはあくまでUnicode Normalizationの話なので、cultureに特化して行われるcollationとは別の話なのです。CompareInfo.Compare()では、たとえば「ないーう゛」(309Bhを使用)と「ナイーヴ」なんかも正しく同一視されます。といっても、Unicode Normalizationの目的は文字列のcodepoint比較を可能にすることにあるのですから、ちゃんとUAX#15のレベルで同一視してほしいなという話はあります。おそらく"strip spaces on normalization"みたいなプロパティでも導入すれば解決する話だったと思うので。