如何将ISO-3国家代码转换为ISO-2国家代码?例如,我有一个字符串值"USA“,需要转换为"US”。
在传递位置的纬度和经度后,我将API (Microsoft.Phone.Maps.Services.MapAddress.CountryCode)中的3位国家代码作为字符串值。我检查了Windows 8 API栈,但是找不到任何相关的东西。
这在Windows Phone 8中是可能的吗?有可用的库来做同样的事情吗?任何帮助都将不胜感激。谢谢。
发布于 2014-06-20 14:02:28
似乎您被困在WP上的自定义映射。
本机Win NLS主要适用于WP,它不包括EnumSystemGeoID函数来枚举WP上的所有值。
http://msdn.microsoft.com/en-us/library/windows/desktop/dd317826(v=vs.85).aspx
参见c:\Program (x86)\Windows \8.0\Include\winnls.h:
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PC_APP)
WINBASEAPI
BOOL
WINAPI
EnumSystemGeoID(
_In_ GEOCLASS GeoClass,
_In_ GEOID ParentGeoId,
_In_ GEO_ENUMPROC lpGeoEnumProc);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PC_APP) */这也可能是托管RegionInfo不提供WP上的ThreeLetterISORegionName属性的原因。
发布于 2014-06-16 09:23:12
似乎没有内置的方法来做到这一点。您可以使用来自GenericTypeTea's answer的方法。但是,如果需要转换许多国家代码,则可以避免区域性枚举,并预先计算用于国家代码转换的映射字典。
https://stackoverflow.com/questions/24240275
复制相似问题