首页 > 解决方案 > 我的本地机器上与 Azure 上的捷克语不同的英文名称

问题描述

我正在尝试RegionInfo通过国家名称获取对象。我想出了这段代码:

 var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID));
 var regionInfo = regions.FirstOrDefault(region => region.EnglishName.Contains(englishCountryName));

它在我的机器上运行良好。但是当我将它部署在 Azure App Service 上时,它会返回null捷克。

所以我测试了它:

//My machine
new RegionInfo(1029).EnglishName //returns Czechia
//Azure
new RegionInfo(1029).EnglishName //returns Czech Republic

事实证明,捷克共和国在 2016 年更名,为什么 Azure 显示“旧”名称?如何使这个解决方案与文化无关?

标签: c#.netazurecultureinforegioninfo

解决方案


随着国家/地区名称可能发生变化,您最好使用其中一个 ISO 代码。

如果您不能根据您的输入使用 ISO 代码,您可以使用 ISO3166 NuGet 包之类的东西来控制将英语语言输入映射到 ISO 代码。我看到当前版本似乎也不是最新的,但如果你实施它,至少你会得到一个一致的值。


推荐阅读