如何获得国家代码信息..如中国的是 86.在线等.谢谢

TimiXu 2006-06-07 04:19:19
如题
...全文
538 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
TimiXu 2006-06-08
  • 打赏
  • 举报
回复
搞了个表,其实在大国家能用就OK了..HOHO.
留下代码.HOHO
#include <windows.h>
#include <stdio.h>

typedef struct _LANGUAGE_CODE_ENTRY
{

ULONG LanID;
ULONG CountryCode;

}LANGUAGE_CODE_ENTRY;

static LANGUAGE_CODE_ENTRY LanToCodeTbl[] =
{
{ 0x0436, CTRY_SOUTH_AFRICA },
{ 0x041c, CTRY_ALBANIA },
{ 0x0484, CTRY_FRANCE },
{ 0x045e, 251 }, //埃塞俄比亚,WINDOWS未定义
{ 0x1401, CTRY_ALGERIA },
{ 0x3c01, CTRY_BAHRAIN },
{ 0x0c01, CTRY_EGYPT },
{ 0x0801, CTRY_IRAQ },
{ 0x2c01, CTRY_JORDAN },
{ 0x3401, CTRY_KUWAIT },
{ 0x3001, CTRY_LEBANON },
{ 0x1001, CTRY_LIBYA },
{ 0x1801, CTRY_MOROCCO },
{ 0x2001, CTRY_OMAN },
{ 0x4001, CTRY_QATAR },
{ 0x0401, CTRY_SAUDI_ARABIA },
{ 0x2801, CTRY_SYRIA },
{ 0x1c01, CTRY_TUNISIA },
{ 0x3801, CTRY_UAE },
{ 0x2401, CTRY_YEMEN },
{ 0x042b, 374 }, //亚美尼亚
{ 0x044d, CTRY_INDIA },
{ 0x082c, CTRY_SERBIA }, //南斯拉夫语
{ 0x0445, CTRY_INDIA },
{ 0x047e, CTRY_FRANCE },
{ 0x0402, CTRY_BULGARIA },
{ 0x0403, CTRY_SPAIN },
{ 0x0c04, CTRY_HONG_KONG },
{ 0x1404, CTRY_MACAU },
{ 0x0804, CTRY_PRCHINA },
{ 0x1004, CTRY_SINGAPORE },
{ 0x0404, CTRY_TAIWAN },
{ 0x101a, 0 }, //!!!克罗地亚语,找不到国家代码!!!
{ 0x0405, CTRY_CZECH },
{ 0x0406, CTRY_DENMARK },
{ 0x048c, 93 },
{ 0x0465, 960 }, //马尔代夫,WINDOWS未定义
{ 0x0813, CTRY_BELGIUM },
{ 0x0413, CTRY_NETHERLANDS },
{ 0x0c09, CTRY_AUSTRALIA },
{ 0x2809, CTRY_BELIZE },
{ 0x1009, CTRY_CANADA },
{ 0x2409, CTRY_CARIBBEAN },
{ 0x1809, CTRY_IRELAND },
{ 0x2009, CTRY_JAMAICA },
{ 0x1409, CTRY_NEW_ZEALAND },
{ 0x3409, CTRY_PHILIPPINES },
{ 0x1c09, CTRY_SOUTH_AFRICA },
{ 0x2c09, CTRY_TRINIDAD_Y_TOBAGO },
{ 0x0809, CTRY_UNITED_KINGDOM },
{ 0x0409, CTRY_UNITED_STATES },
{ 0x3009, CTRY_ZIMBABWE },
{ 0x0425, CTRY_ESTONIA },
{ 0x0438, CTRY_FAEROE_ISLANDS },
{ 0x040c, CTRY_FRANCE },
{ 0x080c, CTRY_BELGIUM },
{ 0x0c0c, CTRY_CANADA },
{ 0x140c, CTRY_LUXEMBOURG },
{ 0x180c, CTRY_MONACO },
{ 0x100c, CTRY_SWITZERLAND },
{ 0x0c07, CTRY_AUSTRIA },
{ 0x0407, CTRY_GERMANY },
{ 0x1407, CTRY_LIECHTENSTEIN },
{ 0x1007, CTRY_LUXEMBOURG },
{ 0x0807, CTRY_SWITZERLAND },
{ 0x0408, CTRY_GREECE },
{ 0x040d, CTRY_ISRAEL },
{ 0x0439, CTRY_INDIA },
{ 0x040e, CTRY_HUNGARY },
{ 0x040f, CTRY_ICELAND },
{ 0x0421, CTRY_INDONESIA },
{ 0x0410, CTRY_ITALY },
{ 0x0810, CTRY_SWITZERLAND },
{ 0x0411, CTRY_JAPAN },
{ 0x043f, 327 },
{ 0x0412, CTRY_SOUTH_KOREA },
{ 0x0426, 371 },
{ 0x0427, CTRY_LITHUANIA },
{ 0x042f, CTRY_MACEDONIA },
{ 0x083e, CTRY_BRUNEI_DARUSSALAM },
{ 0x043e, CTRY_MALAYSIA },
{ 0x044c, CTRY_INDIA },
{ 0x0814, CTRY_NORWAY },
{ 0x0482, CTRY_FRANCE },
{ 0x0448, CTRY_INDIA },
{ 0x0429, CTRY_IRAN },
{ 0x0415, CTRY_POLAND },
{ 0x0416, CTRY_BRAZIL },
{ 0x0816, CTRY_PORTUGAL },
{ 0x0418, CTRY_ROMANIA },
{ 0x0419, CTRY_RUSSIA },
{ 0x044f, CTRY_INDIA },
{ 0x041b, CTRY_SLOVAK },
{ 0x0424, CTRY_SLOVENIA },
{ 0x2c0a, CTRY_ARGENTINA },
{ 0x400a, CTRY_BOLIVIA },
{ 0x340a, CTRY_CHILE },
{ 0x240a, CTRY_COLOMBIA },
{ 0x140a, CTRY_COSTA_RICA },
{ 0x1c0a, CTRY_DOMINICAN_REPUBLIC },
{ 0x300a, CTRY_ECUADOR },
{ 0x440a, CTRY_EL_SALVADOR },
{ 0x100a, CTRY_GUATEMALA },
{ 0x480a, CTRY_HONDURAS },
{ 0x080a, CTRY_MEXICO },
{ 0x4c0a, CTRY_NICARAGUA },
{ 0x180a, CTRY_PANAMA },
{ 0x3c0a, CTRY_PARAGUAY },
{ 0x280a, CTRY_PERU },
{ 0x500a, CTRY_PUERTO_RICO },
{ 0x380a, CTRY_URUGUAY },
{ 0x200a, CTRY_VENEZUELA },
{ 0x0441, CTRY_KENYA },
{ 0x081d, CTRY_FINLAND },
{ 0x041d, CTRY_SWEDEN },
{ 0x045a, CTRY_SYRIA },
{ 0x0449, CTRY_INDIA },
{ 0x0444, CTRY_RUSSIA },
{ 0x044a, CTRY_INDIA },
{ 0x041e, CTRY_THAILAND },
{ 0x041f, CTRY_TURKEY },
{ 0x0422, CTRY_UKRAINE },
{ 0x0820, CTRY_INDIA },
{ 0x0420, CTRY_PAKISTAN }
};

ULONG GetCountryCode( IN LANGID LangID )
{
for( int i = 0 ;
i < sizeof(LanToCodeTbl) / sizeof(LANGUAGE_CODE_ENTRY) ;
i++ )
{
if( LanToCodeTbl[i].LanID == LangID )
return LanToCodeTbl[i].CountryCode ;
}
//if not found , return 0;
return 0;
}
void main( )
{
LANGID id = GetSystemDefaultLangID( );

ULONG contryID = GetCountryCode( id );

if( contryID )
{
char codeBuf[8];
itoa(contryID, codeBuf, 10 );
printf("country ID = %s\n",codeBuf );
}
else
{
printf("unkown country code\n");
}

}

kugou123 2006-06-07
  • 打赏
  • 举报
回复
还有个方法,打10000号,问问电信客服。呵呵
kugou123 2006-06-07
  • 打赏
  • 举报
回复
google 就可以了
Maxwell 2006-06-07
  • 打赏
  • 举报
回复
靠语言区分很难,有些语言是多个国家都用的,而且语言代码一样,区分不出哪个国家。
lixiaosan 2006-06-07
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_238z.asp
Maxwell 2006-06-07
  • 打赏
  • 举报
回复
建表也没有用,就像英语国家有那么多,小国也很多,怎么能根据语言或者时区区分开是哪个国家?
lixiaosan 2006-06-07
  • 打赏
  • 举报
回复
这个可以在网上查到把。。没注意有得到国家代码的相关函数。。

你可以自己建个map
Maxwell 2006-06-07
  • 打赏
  • 举报
回复
或者楼主是想从windows中取得当前国家代码?但是在windows系统中只有语言代码,没有国家代码。
Maxwell 2006-06-07
  • 打赏
  • 举报
回复
http://www.knowsky.com/tools/ToolDName.asp

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧