How to get the country code from CultureInfo?

六眼飞鱼酱① 提交于 2020-01-01 03:59:53

问题


I have the following:

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;

None of this gives me the country code, e.g. GB.

Is there a way to get it without string splitting?


回答1:


var c = new CultureInfo("en-GB");
var r = new RegionInfo(c.LCID);
string name = r.Name;

Most probably you need to use r.TwoLetterISORegionName property.

string regionName = r.TwoLetterISORegionName;



回答2:


System.Globalization.CultureInfo c = new System.Globalization.CultureInfo("en-GB");
var ri = new RegionInfo(c.Name);
string countryName = ri.DisplayName;

That will give you:

"United Kingdom"

For Two Letter Use:

string countryAbbrivation = ri.TwoLetterISORegionName;

That will give you "GB"




回答3:


You can try the RegionInfo Class. One of the properties is the RegionInfo.TwoLetterISORegionName Property. Example from MSDN:

RegionInfo myRI1 = new RegionInfo("US");
Console.WriteLine( "   Name:                         {0}", myRI1.Name );
Console.WriteLine( "   ThreeLetterISORegionName:     {0}", myRI1.ThreeLetterISORegionName );
Console.WriteLine( "   TwoLetterISORegionName:       {0}", myRI1.TwoLetterISORegionName );

Name: US

ThreeLetterISORegionName: USA

TwoLetterISORegionName: US




回答4:


If you just want to use the RegionInfo of the current thread, you can get the country code with this one-liner:

RegionInfo.CurrentRegion.TwoLetterISORegionName



回答5:


Following will also accept 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;
}


来源:https://stackoverflow.com/questions/20330343/how-to-get-the-country-code-from-cultureinfo

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!