将ISO3国家代码转换为ISO2国家代码- Windows Phone 8



如何将ISO-3国家代码转换为ISO-2国家代码?例如,我有一个字符串值"USA",需要将其转换为"US"。

我从API (Microsoft.Phone.Maps.Services.MapAddress.CountryCode)获得3位数的国家代码作为字符串值,传递纬度经度的位置后。我检查了Windows Phone 8的API堆栈,但没有找到任何相关的。

这在Windows Phone 8中可能吗?有什么库可以做同样的事情吗?任何帮助都将不胜感激。谢谢。

似乎你被WP上的自定义映射卡住了。

本机winnls API主要用于WP,但不包括枚举WP上所有值的EnumSystemGeoID函数。

http://msdn.microsoft.com/en-us/library/windows/desktop/dd317826 (v = vs.85) . aspx

参见c:Program Files (x86)Windows Phone Kits8.0Includewinnls.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属性的原因。

看起来没有内置的方法来做到这一点。您可以使用GenericTypeTea的答案中的方法。但是,如果您需要转换许多国家/地区代码,则可以避免使用Cultures枚举,并预先计算用于国家/地区代码转换的映射字典。

看这里在。net中转换国家代码

最新更新