如何从CultureInfo获取国家/地区代码?

时间:2013-12-02 14:12:52

标签: c# globalization

我有以下内容:

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

有没有办法在没有字符串拆分的情况下获取它?

5 个答案:

答案 0 :(得分:65)

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

您很可能需要使用r.TwoLetterISORegionName属性。

string regionName = r.TwoLetterISORegionName;

答案 1 :(得分:8)

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”

答案 2 :(得分:5)

您可以尝试RegionInfo Class。其中一个属性是RegionInfo.TwoLetterISORegionName Property。 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

答案 3 :(得分:0)

如果您只想使用当前线程的RegionInfo,则可以使用此单行代码获取国家/地区代码:

RegionInfo.CurrentRegion.TwoLetterISORegionName

答案 4 :(得分:-1)

以下也将接受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;
}