.NET 8土耳其语大写‘I’转小写异常问题及解决咨询
解决.NET 8中土耳其语大写‘I’转小写的规则匹配问题
在.NET 8中,字符串默认的ToLower()方法使用**不变区域性(InvariantCulture)**处理转换,这导致大写‘I’被转为‘i’,不符合土耳其语的转换规则(应转为‘ı’)。而.NET Framework 4.7默认使用当前区域性,因此能得到正确结果。
要让.NET 8按土耳其语规则处理,有两种可行方案:
1. 调用ToLower()时明确指定土耳其语区域性
using System.Globalization; var input = "Iı"; var toLower = input.ToLower(new CultureInfo("tr-TR")); // 输出结果:ıı
2. 全局设置默认区域性(适合全应用统一规则)
在应用启动时设置线程默认区域性,后续调用ToLower()无需重复指定:
using System.Globalization; // 设置当前线程的默认区域性和UI区域性 CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("tr-TR"); CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("tr-TR"); // 后续调用示例 var toLower = "Iı".ToLower(); // 输出结果:ıı
内容的提问来源于stack exchange,提问作者Khalig Heydarov
相关产品推荐
相关产品推荐

