「インバリアント」カルチャで「İ」を小文字に変換する場合、C# (.NET v4.0) と Java の動作に違いがあります。
Java では、 を"İ".toLowerCase(Locale.ROOT)
返します'i'
。
C# では"İ".ToLowerInvariant()
、"İ".ToLower(CultureInfo.InvariantCulture)
どちらも戻ります"İ"
が、"İ".ToLower(new CultureInfo("en-EN"))
戻ります'i'
。
Java は変換を正しく行っているように見えますが、C# はそうではありません。これは C# のバグですか?