如何从CultureInfo获取国家/地区代码?
我有以下内容:
System.Globalization.CultureInfo c = new System.Globalization.CultureInfo("en-GB"); var a = c.DisplayName; var b = c.EnglishName; var d = c.LCID; var e = c.Name; var f = c.NativeName; var g = c.TextInfo; var h = c.ThreeLetterISOLanguageName; var i = c.ThreeLetterWindowsLanguageName; var j = c.TwoLetterISOLanguageName;
这些都没有给我国家代码,例如GB
。
有没有办法在没有字符串拆分的情况下获得它?
var c = new CultureInfo("en-GB"); var r = new RegionInfo(c.LCID); string name = r.Name;
最有可能你需要使用r.TwoLetterISORegionName
属性。
string regionName = r.TwoLetterISORegionName;
System.Globalization.CultureInfo c = new System.Globalization.CultureInfo("en-GB"); var ri = new RegionInfo(c.Name); string countryName = ri.DisplayName;
那会给你:
"United Kingdom"
两个字母使用:
string countryAbbrivation = ri.TwoLetterISORegionName;
那会给你“GB”
您可以尝试RegionInfo类 。 其中一个属性是RegionInfo.TwoLetterISORegionName属性 。 来自MSDN的示例:
RegionInfo myRI1 = new RegionInfo("US"); Console.WriteLine( " Name: {0}", myRI1.Name ); Console.WriteLine( " ThreeLetterISORegionName: {0}", myRI1.ThreeLetterISORegionName ); Console.WriteLine( " TwoLetterISORegionName: {0}", myRI1.TwoLetterISORegionName );
姓名:美国
ThreeLetterISORegionName:USA
TwoLetterISORegionName:US
以下也将接受CultureInfo(“en”);
var c = new CultureInfo("en-GB"); string countryAbbrivation; if (!c.IsNeutralCulture) { var region = new RegionInfo(ContentLanguage.PreferredCulture.LCID); countryAbbrivation = region.TwoLetterISORegionName.ToLower(); }else{ countryAbbrivation = c.Name; }