RegionInfo在Windows 8.1的应用程序
问题描述:
我有以下代码抛出异常:RegionInfo在Windows 8.1的应用程序
var culture = CultureInfo.CurrentUICulture;
var regionInfo = new RegionInfo(culture.TwoLetterISOLanguageName);
如果CurrenUiCulture
是希伯来语ISOLanguageName“他”抛出一个异常
该地区的名字,他不应该对应于中性文化;一个 特定的文化名称是必需的。
它适用于其他文化,如阿拉伯,西班牙,中国......有什么不对?
答
he
是一个区域中性培养如图由此代码
new CultureInfo("he").IsNeutralCulture; // true
的RegionInfo
,其采用int
构造字以不同的方式,我发现更容易理解该异常。
new RegionInfo(new CultureInfo("he").LCID) // Culture ID 13 (0x000D) is a neutral culture; a region cannot be created from it.
请尝试更具体的文化名称,例如he-il
以色列。
new RegionInfo("he-il")
不会引发异常。
至于你的其他例子...
-
es
既是西班牙语的区域中性语言代码和西班牙(RegionInfo
also accepts a country code)国家代码所以这就是为什么它的工作原理 -
ar
既是阿拉伯语的地区中立语言代码和阿根廷的国家代码(所以它“工作”,但你不会得到预期的结果) -
zh
是中国区域中立的代码,它不应该工作。虽然如果你尝试cn
它工作,因为它是国家代码。
答
我想你会需要更具体的东西,如:
regionInfo = new RegionInfo("en-US")
我不能说你将需要为希伯来语言,字符串字面量,但是,我做了一些研究,我甚至不能找到缩写“他”的希伯来语......我发现的是这个名单并没有希伯来文,但“IL”为以色列(它是.NET 3.5):
[http://msdn.microsoft.com/en-us/library/system.globalization.regioninfo%28v=VS.90%29.aspx][1]
希望这有助于你。
如何将中立文化转换为特定文化?我也有同样的问题。 – 2015-05-21 15:00:06
没有简单的转换。一种中立文化对应于许多具体的文化。 – Vache 2015-05-21 21:26:21