如何将ISO-3国家/地区代码转换为ISO-2国家/地区代码。例如,我有一个字符串值“USA”,需要转换为“US”。
我在传递 Latitude 之后,将API( Microsoft.Phone.Maps.Services.MapAddress.CountryCode )中的3位数国家/地区代码作为字符串值获取经度的位置。我检查了Windows Phone 8 API堆栈但找不到任何相关内容。
在Windows Phone 8中可以吗?任何图书馆都可以这样做吗? 任何帮助将不胜感激。 感谢。
答案 0 :(得分:2)
好像你在WP上遇到了自定义映射。
主要可用于WP的本机Win NLS API不包含EnumSystemGeoID函数来枚举WP上的所有值。
http://msdn.microsoft.com/en-us/library/windows/desktop/dd317826(v=vs.85).aspx
请参阅c:\ Program Files(x86)\ Windows Phone Kits \ 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属性。
答案 1 :(得分:0)
看起来没有内置方法可以做到这一点。您可以使用GenericTypeTea's answer中的方法。但是,如果您需要转换许多国家/地区代码,则可以避免使用Cultures枚举并预先计算国家/地区代码转换的映射字典。