C# RegionInfo在Windows 8.1应用程序中引发异常
我有以下代码:C# RegionInfo在Windows 8.1应用程序中引发异常,c#,c#-4.0,globalization,C#,C# 4.0,Globalization,我有以下代码: var culture = CultureInfo.CurrentUICulture; var regionInfo = new RegionInfo(culture.TwoLetterISOLanguageName); 如果currenculture是希伯来语,且具有ISOLanguageName,“he”抛出异常 地域名称不应与中立文化相对应;A. 需要特定的区域性名称 它与其他文化如阿拉伯、西班牙、中国等合作。。。怎么了?我想你需要更具体的东西,比如: regionI
var culture = CultureInfo.CurrentUICulture;
var regionInfo = new RegionInfo(culture.TwoLetterISOLanguageName);
如果currenculture
是希伯来语,且具有ISOLanguageName,“he”抛出异常
地域名称不应与中立文化相对应;A.
需要特定的区域性名称
它与其他文化如阿拉伯、西班牙、中国等合作。。。怎么了?我想你需要更具体的东西,比如:
regionInfo = new RegionInfo("en-US")
我不能说希伯来语需要哪个字符串文字,但是,我做了一些研究,甚至找不到希伯来语的缩写“he”。。。我发现的是这个列表,以色列没有希伯来语,只有“IL”(代表.NET3.5):
[
希望这能对你有所帮助。
他是一个地区中立的文化,正如代码所示
new CultureInfo("he").IsNeutralCulture; // true
采用int
构造函数的RegionInfo
以我发现更容易理解的另一种方式表达异常
new RegionInfo(new CultureInfo("he").LCID) // Culture ID 13 (0x000D) is a neutral culture; a region cannot be created from it.
尝试使用更具体的文化名称,例如以色列的he il
newregioninfo(“he-il”)
不会引发异常
至于你的其他例子
es
既是西班牙语的地区中立语言代码,也是西班牙语的国家代码(),因此它可以工作
ar
是阿拉伯语的地区中性语言代码,也是阿根廷的国家代码(因此它“起作用”,但不会得到预期的结果)
zh
是中国的地区中立代码,不应该起作用。但是如果你尝试cn
它起作用,因为它是国家代码
如何将中性区域性转换为特定区域性?我有同样的问题。没有简单的转换。一个中性区域性对应于许多特定的区域性。