代码功能:检测用户输入的字符集是否为GB2312标准字符集。。 跪等高手忘记说了,是在unix环境下~
2 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
如果是Windows系统,可以用API函数
int GetTextCharset(HDC)
返回值可能是
ANSI_CHARSET
CHINESEBIG5_CHARSET
GB2312_CHARSET
等预定义的符号值。到底可能返回哪些值,与Windows的版本以及所使用的开发环境有关。
比如,要查询Windows桌面所使用的字符集,可以这样调用:
switch ( GetTextCharset(GetWindowDC(GetDesktopWindow())))
{
case GB2312_CHARSET: printf("桌面正在使用GB2312字符集\n");break;
case CHINESEBIG5_CHARSET: printf("桌面正在使用BIG5字符集\n");break;
}
HUWWW
TA贡献1874条经验 获得超12个赞
1)文库一下“gb2312_gb18030_字符集”,就能下载到相应的文档,得到GB2312字符集的编码列表。
2)把这个列表存成txt文件,在程序启动的时候,读入内存数组中,排好序。
3)当需要检测一个用户输入的字符串,是否是GB2312标准字符集,则将该字符串的每2个字节(非Ascii的,即高字节不位0的),都拿去在这个GB2312数组中进行二分查找。如果都能找到,则说明用户输入字符串是GB2312的,如果有找不到的,则说明这个字符转不是GB2312的。
添加回答
举报
0/150
提交
取消