在 Windows10 周年更新后,CultureInfo 和 NumberFormat(特别是 NumberGroupSeparator)出现了问题。
此示例应用程序显示了问题(我的系统语言已取消):
private static void Main(string[] args)
{
foreach (var cultureInfo1 in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
var cultureInfo2 = CultureInfo.GetCultureInfo(cultureInfo1.Name);
if (cultureInfo1.NumberFormat.NumberGroupSeparator != cultureInfo2.NumberFormat.NumberGroupSeparator)
Console.WriteLine(
$"{cultureInfo1.Name}: {cultureInfo1.NumberFormat.NumberGroupSeparator} != {cultureInfo2.NumberFormat.NumberGroupSeparator}");
}
Console.WriteLine("finished");
}
更新前的输出:
finished
Windows10周年更新后的输出:
de-AT: . !=
finished
问题是,我们在代码中使用了 GetCultureInfo(...) 方法,并且在每个带有新 Win10 更新的系统上,我们的 csv 导入器都不起作用,因为组分隔符错误。
我在有和没有更新的不同系统上尝试了这个示例应用程序。即使结果相同。
谁能解释一下?