コンテンツへスキップ
ものがたり
戻る

愛々問題をざっと調べてみた

id:kkamegawa:20081113:p1 なんてネタがあることをついったで教えてもらったので参戦してみるお。

以下とりあえずの実験に基づく考察。結論はまだ出ていません。

気が向いたらまた実験してみる。

ちなみに、.NET 4.0では文字列処理はordinalがデフォルトになるそうで、もう何年も前からMSのglobalization担当者が見ているところでそうしろと主張していた僕は、ようやく来たかと思ったのであった。

おまけ: 半角かなの’ワ’に半濁点の’゛‘が続く文字列から半角かなのワだけ(culture sensitiveな)IndexOf()で探すと見つからないという問題は、この文字シーケンスがUnicode文字のU+30F7と見なされるからであって、これはMicrosoftが正しい。Unicodeの文字列照合の実装でもこうなるべき。

たぶんCompareInfoの実装の問題だと思う。

追記: id:kkamegawa:20081119:p1

monoではどうなんでしょうと言ってみる。

いやあ、普通に2を返しますです:p もう実装したのが3年以上前なのでうろ覚えですが、ja-JPに特化したロジックは入れなかった気がする。日本語に特化したソーティングはInvariantCultureのレベルで.NETでも共通実装になっていますので、日本語環境で問題が起こるとしたら基本的にはja-JP用sortkey tableの問題になり、おそらく今回のような問題の出方はしないでしょう。まあ、この種のバグは実装に手を入れれば自然発生するもんです(monoでも実装してしばらくはいろいろバグレポートされましたし)。

Footnotes

  1. Windowsの文字列照合はUnicode標準に従っていないから、tailoringという表現は使わないだろうけど。


この記事を共有:

前の記事
アンフェア著作権制度協議会
次の記事
11/22 ネット権についてのみゃう勉強会をやります