.NET Chinese CultureInfo" zh"不存在?

时间:2015-03-11 13:04:37

标签: c# cultureinfo chinese-locale

我正在使用.NET 3.5并运行以下代码:

var culture = new CultureInfo("zh"); // Throws ArgumentException

我从xml:lang属性中获取了字符串“zh”。我不明白为什么会抛出异常,因为例如“de”(它是“de-DE”的父级)工作正常。文化“zh-CN”确实有效,但这些我无法使用。

修改 它适用于.NET 4.5.1(感谢xanatos) - 所以即使MSDN页面解释中文是一个例外,新版.NET版本的行为也不同。

2 个答案:

答案 0 :(得分:4)

CultureInfo页面上有一个小注释:

  

有两种文化名称与此规则相矛盾。名为zh-Hans的中文(简体)和名为zh-Hant的中文(繁体)文化是中性文化。文化名称代表当前标准,除非您有理由使用旧名称zh-CHS和zh-CHT,否则应使用。

因此,您可以尝试zh-Hanszh-Hant

和/或您可以看到What cultures are supported by the CultureInfo class in .NET 3.5?

接受的答案是:

  

不幸的是,它依赖于操作系统。在此处检查每个操作系统的默认语言支持。

答案 1 :(得分:0)

在.NET 3.5" zh"不起作用,使用" zh-Hans"或" zh-Hant"代替。没有找到更好的解决方案。或者切换到.NET 4.5。