gbk汉字编码查询 gbk内码查询 gbk姓名编码查询

问题碰到这样的需求 , 给定一个中文字符 , 如”中” , 获取其拼音表示 , 如:zhong 。
思路在Unicode开发环境下 , 每一个字符 , 不论它是中文字符 , 还是ASCII字符 , 都是用两个字节表示 。例如:
TCHAR ch1 = _T(‘A’);
这里的ch1的大小是两个字节 , ch1的值为0x0041 。
TCHAR ch2 = _T(‘中’);
这里的ch2的大小是也是两个字节 , ch1的值为0x4E2D 。
想要得到汉字的拼音 , 必须先得到汉字对应的GB2312/GBK机内码 。这里需要注意的是 , Unicode字符集和GB2312/GBK字符集是两套互不兼容的字符编码标准 , 比如”中”字的Unicode编码为0x4E2D , 而它的GB2312/GBK编码为0xD6D0 。
得到汉字对应的GB2312/GBK机内码之后 , 可以通过查询GB2312/GBK标准来得到其对应的拼音了 。
实现方法1) 通过WideCharToMultiByte将Unicode字符集转换为ANSI字符集 。
2) 判断转换的ANSI字符是否是ASCII字符 , 可以使用isascii函数来进行判断 。
3) 如果转换的ANSI字符的高低字节都大于0xA0 , 则表示这是一个中文字符 , 可以通过如下的公式获取其GB2312/GBK机内码 。
chHigh = 高8位字节(中文字符);
chLow = 低8位字节(中文字符);
GBK = (chHigh – 0xA0) * 100 + chLow – 0xA0;
4) 根据GB2312/GBK表查询对应的拼音表示 。
总结对于没有对应关系的两个字符集Unicode和GB2312/GBK来说 , 也只能通过查表的方式找出对应关系了 。

gbk汉字编码查询 gbk内码查询 gbk姓名编码查询

文章插图
【gbk汉字编码查询 gbk内码查询 gbk姓名编码查询】