2014-06-16 100 views
2

如何将ISO-3国家代码转换为ISO-2国家代码。例如,我有一个字符串值“USA”,需要转换为“US”。将ISO3国家代码转换为ISO2国家代码 - Windows Phone 8

我碰到API(Microsoft.Phone.Maps.Services.MapAddress.CountryCode)作为字符串值的3位国家代码,通过纬度和位置的经度。我检查了Windows Phone 8 API堆栈,但找不到任何相关的东西。

Windows Phone 8可能吗?任何图书馆都可以这样做? 任何帮助将不胜感激。 谢谢。

回答

0

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

看一看在这里Converting country codes in .NET

+0

谢谢,但GenericTypeTea的答案不适用于Windows Phone 8.尽管它适用于WPF。 – abhilashca

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的工具包\ 8.0 \包括\ 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属性。