我在考虑使用RegionInfo.TwoLetterISORegionName to作为一个数据库属性,从中获取有关某个国家的信息。直到我看到了RegionInfoGeoId,它看起来更健壮。
您会存储哪些内容来支持国际化?如何从GeoId创建RegionInfo?
干杯,
Berryl
发布于 2011-08-20 00:35:10
使用P/Invoke和GetGeoInfo函数,您可以从GeoID获取一些信息:
public static string GetGeoInfo(int geoId, SYSGEOTYPE geoType)
{
string s = new string('\0', 256);
int size = GetGeoInfo(geoId, geoType, s, 256, 0);
if (size <= 0)
return null;
return s.Substring(0, size - 1);
}
public enum SYSGEOTYPE
{
GEO_NATION = 0x0001,
GEO_LATITUDE = 0x0002,
GEO_LONGITUDE = 0x0003,
GEO_ISO2 = 0x0004,
GEO_ISO3 = 0x0005,
GEO_RFC1766 = 0x0006,
GEO_LCID = 0x0007,
GEO_FRIENDLYNAME = 0x0008,
GEO_OFFICIALNAME = 0x0009,
GEO_TIMEZONES = 0x000A,
GEO_OFFICIALLANGUAGES = 0x000B
}
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private extern static int GetGeoInfo(int geoId, SYSGEOTYPE geoType, string lpGeoData, int cchData, int language);但是,请注意,地理位置和区域之间可能不存在1:1的对应关系。
https://stackoverflow.com/questions/7124552
复制相似问题