【问题标题】:Why does CultureInfo.GetCultures(CultureTypes.SpecificCultures) return different sets of cultures on different computers为什么 CultureInfo.GetCultures(CultureTypes.SpecificCultures) 在不同的计算机上返回不同的文化集
【发布时间】:2016-10-10 21:27:02
【问题描述】:

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

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

在 .NET 4.0cultureCount = 535 的 Windows 10 上

在具有 .NET 4.0cultureCount = 554 的不同 Windows 10 上

在 .NET 4.0cultureCount = 210 的 Windows 7 上。

我在不同的计算机上得到不同的结果有什么原因吗?

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

【问题讨论】:

  • .NET 还公开了操作系统支持的文化。一个不断增长的数字。 Win10内部版本号很重要,到目前为止已经有3个。没什么可永远担心的,这些新增内容非常晦涩。
  • @HansPassant 感谢您提供的信息。因此,如果我在 Windows XP 机器上获得了所有文化,那么该集合应该始终可用于任何运行 XP 或更新版本的机器?

标签: c# .net localization cultureinfo


【解决方案1】:

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

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

不同文化的原因是 Windows 或服务包的差异。

但是,我没有找到任何表明存在最小文化集的 Microsoft 链接。根据我的观察,更高版本的 Windows 包含旧文化。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 2021-08-16
    相关资源
    最近更新 更多