为什么CultureInfo.GetCultures(CultureTypes.SpecificCultures)在不同的计算机上返回不同的文化集

时间:2016-10-10 21:27:02

标签: c# .net localization cultureinfo

如果我在不同的计算机上运行以下代码行,那么我会得到不同的结果:

int cultureCount = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Count();

在Windows 10上使用.NET 4.0 cultureCount = 535

在另一台带有.NET 4.0 cultureCount = 554的Windows 10上

在Windows 7上使用.NET 4.0 cultureCount = 210。

我是否有理由在不同的计算机上获得不同的结果?

是否有标准的最小文化集保证在所有计算机上都存在?

1 个答案:

答案 0 :(得分:1)

根据MSDN的这个链接: https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.110).aspx

  

请记住,文化名称和标识符仅代表可在特定计算机上找到的文化子集。 Windows版本或Service Pack可以更改可用的文化。

不同文化的原因是Windows或Service Pack的差异。

但是,我没有发现任何Microsoft链接表明存在一组最小的文化。根据我的观察,Windows的后续版本包含较旧的文化。

我的解决方案是检查旧版Windows,并确保文化存在于那里。如果没有,我将为后向支持建立一个自定义文化。