「İ」を小文字に変換するためのC#(.NET v4.0)とJavaの動作の違いは、不変の文化。string.ToLowerInvariant()in C#vs String.ToLowerCase(Culture.ROOT)for Javaトルコ語の場合
Javaの場合"İ".toLowerCase(Locale.ROOT)
は'i'
を返します。 C#の
、"İ".ToLowerInvariant()
及び"İ".ToLower(CultureInfo.InvariantCulture)
両方が"İ"
しかし"İ".ToLower(new CultureInfo("en-EN"))
戻り'i'
を返します。
Javaは正しく変換を行っているようですが、C#は正しくありません。これはC#のバグですか?
C#は大きなフィールドです。あなたの例では、どのバージョンの.NET/CLRを使用していますか? .NET 1.1,2.0,3.0,3.5,4.0,4.5,4.6? –
完了。質問に追加されました。 – bittusarkar
'CultureInfo'の値は、変換を実行する際に使用される文字セットに影響することがあります。英語は、デフォルトでASCIIまたはISO-8859-1のいずれかを使用する傾向があります。ここで、 'InvariantCulture'は特殊なトルコ語の'ı'文字を含むUTF-8エンコーディングを使用します。 –