我正在使用.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版本的行为也不同。
答案 0 :(得分:4)
CultureInfo页面上有一个小注释:
有两种文化名称与此规则相矛盾。名为zh-Hans的中文(简体)和名为zh-Hant的中文(繁体)文化是中性文化。文化名称代表当前标准,除非您有理由使用旧名称zh-CHS和zh-CHT,否则应使用。
因此,您可以尝试zh-Hans
或zh-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。