[英].Net: get ISO3166 code for German country name
我有2种方法:一种将给定的ISO3166代码转换为德语中相应国家的名称(例如,从“ de-DE”到“ Deutschland”)。 这很好。 现在,我需要一种可以替代方法的方法。 当前看起来像这样:
public static string GetISO3166CodeForGermanCountryName(string countryName)
{
if (string.IsNullOrEmpty(countryName) || countryName.Length == 2)
return countryName;
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-AT");
CultureInfo cInfo = cultures.FirstOrDefault(culture => new RegionInfo(culture.LCID).DisplayName == countryName);
if (cInfo != null && cInfo.Name.Contains("-"))
return cInfo.Name.Split('-')[1]; //take the 2nd part of the culture info name (e.g. "de-AT" --> "AT")
else
return null;
}
这在我的开发机上可以正常工作,因为已安装的.Net框架是德语的。 但是,在我们的活动服务器(Windows Server 2012)上,该方法为所有输入返回null。 发生这种情况是因为那里安装的.Net框架是英文的。 我试图通过为.Net Framework 4.5安装德语包来解决此问题,但这没有帮助。 谁能建议其他解决方案(或适用于4.6的有效语言包)?
由于找不到更简单的解决方案,因此我使用了* csv列表,其中包含来自以下国家/地区的所有国家及其名称: https : //www.laenderdaten.info/downloads/
基于此,我创建了一个助手类,该助手类在列表中搜索给定的国家/地区名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.