« AMD 上海ことOpteronIIの新しい命令セット | メイン | PASSJ名古屋アフタースクールご参加ありがとうございました »
フィードバックのコメントでNyaRuRuさんが内部的にはNLS APIを呼び出しているだけという事がわかりました。やっぱりWindowsの文字の重み付けがおかしいです。ありがとうございました。
で、終わるかと思ったのですが、Visual Studio 2010 CTP環境(Visual Studio 2010 Version 10.0.11001.1 CTP2VPC)で、Console.WriteLine("{0}", "愛々,1,2,3".IndexOf(","))を実行すると2が返ってきます。。
検証時の設定ロケールは以下の通り。
User Locale : Japanese
System Locale : English / US
うーーーーん。。.NET FX 4.0で実装変わったのか、Windows 2008でNLSの文字の重み付けが違うのか検証しないと行けなくなってきた。。
とりあえず時間切れ。
このエントリーのトラックバックURL:
http://www.isisaka.com/blog/mt-tb.cgi/2866
コメント
こんにちわ。いつも拝見してます。
.NET FX 4.0 の件は、これと関係ありますか?
「Breaking changes to the String class」
http://davesbox.com/archive/2008/11/12/breaking-changes-to-the-string-class.aspx
Console.WriteLine("{0}", "愛々,1,2,3".IndexOf(",", StringComparison.Ordinal));
だと、2が返ってきますので。
投稿者 Kei1Japan : 2008年11月15日 18:08
コメント見る前にものがたりさん記事から4.0での変更を知って続編記事を書いてしまった。
書いた内容は。。まぁ愚痴です。
投稿者 管理人 : 2008年11月18日 22:53
コメントしてください