c# - 我的本地计算机上的 Czechia 英文名称与 Azure 上的不同英文名称

标签 c# .net azure cultureinfo regioninfo

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

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

它在我的机器上运行良好。但是,当我将其部署在 Azure 应用服务上时,它会为捷克返回 null

所以我测试了它:

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

事实证明,捷克共和国于 2016 年更改了名称,那么为什么 Azure 显示“旧”名称? 如何使这个解决方案独立于文化?

最佳答案

由于国家/地区名称可能会发生变化,您最好使用 ISO 代码之一。

如果您无法根据输入使用 ISO 代码,您可以使用 ISO3166 NuGet 包等工具来控制将英语输入映射到 ISO 代码。我发现当前版本似乎也不是最新的,但如果你实现它,至少你会得到一个一致的值。

关于c# - 我的本地计算机上的 Czechia 英文名称与 Azure 上的不同英文名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55829712/

相关文章:

c# - ASP.NET MVC 或 ASP.NET Web API + AngularJS

c# - Linux 上的 WPF(已经)可能吗?

.net - 如何将参数传递给 BootstrapperFile?

python - 如何解决 "azure.common.AzureHttpError: This request is not authorized to perform this operation. ErrorCode: AuthorizationFailure"

node.js - Azure Bot NodeJS 等待其他对话框完成

c# - 如何通过序列号获取CD/DVD-ROM盘符

c# - 最后,成员(member)年龄不起作用

c# - 在 C# 中向虚拟属性添加 setter

web-services - Windows Azure 云服务 - 入口点

c# - 替换静态类来打包方法和变量