从国际电话代码中查找语言环境[重复]
Posted
技术标签:
【中文标题】从国际电话代码中查找语言环境[重复]【英文标题】:Find locale from International calling code [duplicate] 【发布时间】:2018-09-06 07:35:36 【问题描述】:我已经在数据库中保留了国际电话代码(电话代码),如下所示。
客户表列
名字 姓氏 电子邮件 电话号码示例电话代码
+46
+44
+47
预期结果
var phoneCode = "+47"; //
var cultureInfo = <some way to achieve it by using phoneCode>
由于我已经在表格中保留了电话代码,我想知道是否可以从电话代码中获取区域设置,而不是使用单独的列来保留区域设置。我对此进行了很多搜索,但找不到任何有用的东西。
【问题讨论】:
有很多有用的信息。甚至还有带有国际国家代码的a Wikipedia article。一个简单的字典或查找表就足以将代码与国家/地区匹配,并从那里匹配以该国家/地区代码开头的 CultureInfo 对象。您是否正在寻找现成的数据库或库,因此您不需要自己填写表格? @PanagiotisKanavos 是的,我知道***中有很多关于国际国家代码的信息。我想要的是从国际电话代码中获取国家语言(区域设置)。有什么方法可以完成吗? 你的语言环境是什么意思?从字面意义上说,区域设置 是 国家,您已经通过其两个字母的 ISO 代码知道该国家/地区。在 .NET 中,它是一个 CultureInfo 对象。在数据库中,它是表的排序规则。 CultureInfo 代码以两个字母的国家/地区代码开头,因此您已经了解与特定调用代码匹配的所有区域设置。有用于其他文化的查找表,以涵盖奥地利的de-AT
等案例。数据库排序规则有更复杂的名称。
@PanagiotisKanavos 是的,我的意思是 CultureInfo 对象。目前我的数据库中没有两个字母的国家代码,但我有呼叫代码。我要问的是,有没有办法通过调用 c# 中的代码来获得文化
如果区域设置是指语言代码,请注意国际拨号代码和语言代码之间的翻译并非适用于所有国家(甚至一般情况下)。示例:+41 代表瑞士,但您如何决定是选择德语、法语、意大利语还是 Rumantsch 作为语言环境?
【参考方案1】:
在此post 中,前缀国家/地区编号由字典使用 ISO 3166-1 2 代码检索。
public static string getCountryCode(string PhoneCode)
var dictionary = new Dictionary<string, string>();
dictionary.Add("AC", "+247");
dictionary.Add("AD", "+376");
dictionary.Add("AE", "+971");
dictionary.Add("AF", "+93");
dictionary.Add("AG", "+1-268");
dictionary.Add("AI", "+1-264");
dictionary.Add("AL", "+355");
dictionary.Add("AM", "+374");
dictionary.Add("AN", "+599");
dictionary.Add("AO", "+244");
dictionary.Add("AR", "+54");
dictionary.Add("AS", "+1-684");
dictionary.Add("AT", "+43");
dictionary.Add("AU", "+61");
dictionary.Add("AW", "+297");
dictionary.Add("AX", "+358-18");
dictionary.Add("AZ", "+994"); // or +374-97
dictionary.Add("BA", "+387");
dictionary.Add("BB", "+1-246");
dictionary.Add("BD", "+880");
dictionary.Add("BE", "+32");
dictionary.Add("BF", "+226");
dictionary.Add("BG", "+359");
dictionary.Add("BH", "+973");
dictionary.Add("BI", "+257");
dictionary.Add("BJ", "+229");
dictionary.Add("BM", "+1-441");
dictionary.Add("BN", "+673");
dictionary.Add("BO", "+591");
dictionary.Add("BR", "+55");
dictionary.Add("BS", "+1-242");
dictionary.Add("BT", "+975");
dictionary.Add("BW", "+267");
dictionary.Add("BY", "+375");
dictionary.Add("BZ", "+501");
dictionary.Add("CA", "+1");
dictionary.Add("CC", "+61");
dictionary.Add("CD", "+243");
dictionary.Add("CF", "+236");
dictionary.Add("CG", "+242");
dictionary.Add("CH", "+41");
dictionary.Add("CI", "+225");
dictionary.Add("CK", "+682");
dictionary.Add("CL", "+56");
dictionary.Add("CM", "+237");
dictionary.Add("CN", "+86");
dictionary.Add("CO", "+57");
dictionary.Add("CR", "+506");
dictionary.Add("CS", "+381");
dictionary.Add("CU", "+53");
dictionary.Add("CV", "+238");
dictionary.Add("CX", "+61");
dictionary.Add("CY", "+357"); // or +90-392
dictionary.Add("CZ", "+420");
dictionary.Add("DE", "+49");
dictionary.Add("DJ", "+253");
dictionary.Add("DK", "+45");
dictionary.Add("DM", "+1-767");
dictionary.Add("DO", "+1-809"); // and 1-829?
dictionary.Add("DZ", "+213");
dictionary.Add("EC", "+593");
dictionary.Add("EE", "+372");
dictionary.Add("EG", "+20");
dictionary.Add("EH", "+212");
dictionary.Add("ER", "+291");
dictionary.Add("ES", "+34");
dictionary.Add("ET", "+251");
dictionary.Add("FI", "+358");
dictionary.Add("FJ", "+679");
dictionary.Add("FK", "+500");
dictionary.Add("FM", "+691");
dictionary.Add("FO", "+298");
dictionary.Add("FR", "+33");
dictionary.Add("GA", "+241");
dictionary.Add("GB", "+44");
dictionary.Add("GD", "+1-473");
dictionary.Add("GE", "+995");
dictionary.Add("GF", "+594");
dictionary.Add("GG", "+44");
dictionary.Add("GH", "+233");
dictionary.Add("GI", "+350");
dictionary.Add("GL", "+299");
dictionary.Add("GM", "+220");
dictionary.Add("GN", "+224");
dictionary.Add("GP", "+590");
dictionary.Add("GQ", "+240");
dictionary.Add("GR", "+30");
dictionary.Add("GT", "+502");
dictionary.Add("GU", "+1-671");
dictionary.Add("GW", "+245");
dictionary.Add("GY", "+592");
dictionary.Add("HK", "+852");
dictionary.Add("HN", "+504");
dictionary.Add("HR", "+385");
dictionary.Add("HT", "+509");
dictionary.Add("HU", "+36");
dictionary.Add("ID", "+62");
dictionary.Add("IE", "+353");
dictionary.Add("IL", "+972");
dictionary.Add("IM", "+44");
dictionary.Add("IN", "+91");
dictionary.Add("IO", "+246");
dictionary.Add("IQ", "+964");
dictionary.Add("IR", "+98");
dictionary.Add("IS", "+354");
dictionary.Add("IT", "+39");
dictionary.Add("JE", "+44");
dictionary.Add("JM", "+1-876");
dictionary.Add("JO", "+962");
dictionary.Add("JP", "+81");
dictionary.Add("KE", "+254");
dictionary.Add("KG", "+996");
dictionary.Add("KH", "+855");
dictionary.Add("KI", "+686");
dictionary.Add("KM", "+269");
dictionary.Add("KN", "+1-869");
dictionary.Add("KP", "+850");
dictionary.Add("KR", "+82");
dictionary.Add("KW", "+965");
dictionary.Add("KY", "+1-345");
dictionary.Add("KZ", "+7");
dictionary.Add("LA", "+856");
dictionary.Add("LB", "+961");
dictionary.Add("LC", "+1-758");
dictionary.Add("LI", "+423");
dictionary.Add("LK", "+94");
dictionary.Add("LR", "+231");
dictionary.Add("LS", "+266");
dictionary.Add("LT", "+370");
dictionary.Add("LU", "+352");
dictionary.Add("LV", "+371");
dictionary.Add("LY", "+218");
dictionary.Add("MA", "+212");
dictionary.Add("MC", "+377");
dictionary.Add("MD", "+373"); // or +373-533
dictionary.Add("ME", "+382");
dictionary.Add("MG", "+261");
dictionary.Add("MH", "+692");
dictionary.Add("MK", "+389");
dictionary.Add("ML", "+223");
dictionary.Add("MM", "+95");
dictionary.Add("MN", "+976");
dictionary.Add("MO", "+853");
dictionary.Add("MP", "+1-670");
dictionary.Add("MQ", "+596");
dictionary.Add("MR", "+222");
dictionary.Add("MS", "+1-664");
dictionary.Add("MT", "+356");
dictionary.Add("MU", "+230");
dictionary.Add("MV", "+960");
dictionary.Add("MW", "+265");
dictionary.Add("MX", "+52");
dictionary.Add("MY", "+60");
dictionary.Add("MZ", "+258");
dictionary.Add("NA", "+264");
dictionary.Add("NC", "+687");
dictionary.Add("NE", "+227");
dictionary.Add("NF", "+672");
dictionary.Add("NG", "+234");
dictionary.Add("NI", "+505");
dictionary.Add("NL", "+31");
dictionary.Add("NO", "+47");
dictionary.Add("NP", "+977");
dictionary.Add("NR", "+674");
dictionary.Add("NU", "+683");
dictionary.Add("NZ", "+64");
dictionary.Add("OM", "+968");
dictionary.Add("PA", "+507");
dictionary.Add("PE", "+51");
dictionary.Add("PF", "+689");
dictionary.Add("PG", "+675");
dictionary.Add("PH", "+63");
dictionary.Add("PK", "+92");
dictionary.Add("PL", "+48");
dictionary.Add("PM", "+508");
dictionary.Add("PR", "+1-787"); // and 1-939 ?
dictionary.Add("PS", "+970");
dictionary.Add("PT", "+351");
dictionary.Add("PW", "+680");
dictionary.Add("PY", "+595");
dictionary.Add("QA", "+974");
dictionary.Add("RE", "+262");
dictionary.Add("RO", "+40");
dictionary.Add("RS", "+381");
dictionary.Add("RU", "+7");
dictionary.Add("RW", "+250");
dictionary.Add("SA", "+966");
dictionary.Add("SB", "+677");
dictionary.Add("SC", "+248");
dictionary.Add("SD", "+249");
dictionary.Add("SE", "+46");
dictionary.Add("SG", "+65");
dictionary.Add("SH", "+290");
dictionary.Add("SI", "+386");
dictionary.Add("SJ", "+47");
dictionary.Add("SK", "+421");
dictionary.Add("SL", "+232");
dictionary.Add("SM", "+378");
dictionary.Add("SN", "+221");
dictionary.Add("SO", "+252");
dictionary.Add("SR", "+597");
dictionary.Add("ST", "+239");
dictionary.Add("SV", "+503");
dictionary.Add("SY", "+963");
dictionary.Add("SZ", "+268");
dictionary.Add("TA", "+290");
dictionary.Add("TC", "+1-649");
dictionary.Add("TD", "+235");
dictionary.Add("TG", "+228");
dictionary.Add("TH", "+66");
dictionary.Add("TJ", "+992");
dictionary.Add("TK", "+690");
dictionary.Add("TL", "+670");
dictionary.Add("TM", "+993");
dictionary.Add("TN", "+216");
dictionary.Add("TO", "+676");
dictionary.Add("TR", "+90");
dictionary.Add("TT", "+1-868");
dictionary.Add("TV", "+688");
dictionary.Add("TW", "+886");
dictionary.Add("TZ", "+255");
dictionary.Add("UA", "+380");
dictionary.Add("UG", "+256");
dictionary.Add("US", "+1");
dictionary.Add("UY", "+598");
dictionary.Add("UZ", "+998");
dictionary.Add("VA", "+379");
dictionary.Add("VC", "+1-784");
dictionary.Add("VE", "+58");
dictionary.Add("VG", "+1-284");
dictionary.Add("VI", "+1-340");
dictionary.Add("VN", "+84");
dictionary.Add("VU", "+678");
dictionary.Add("WF", "+681");
dictionary.Add("WS", "+685");
dictionary.Add("YE", "+967");
dictionary.Add("YT", "+262");
dictionary.Add("ZA", "+27");
dictionary.Add("ZM", "+260");
dictionary.Add("ZW", "+263");
var countyCode = dictionary.Where(d => d.Value == PhoneCode).Select(d => d.Key).FirstOrDefault();
return countyCode;
并调用函数:
string isoCountryCode = getCountryCode("+47") //<= Will return "NO"
var cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures)
.Where(c => c.Name.EndsWith("-" + isoCountryCode )).First;
【讨论】:
@SuvethanNantha 你不能用这个解决方案吗?以上是关于从国际电话代码中查找语言环境[重复]的主要内容,如果未能解决你的问题,请参考以下文章