遇到这样的需求,给一个汉字,比如“中”,得到它的拼音表示,比如:中。
思路在Unicode开发环境中,每个字符,无论是汉字还是ASCII字符,都由两个字节表示。例如:
TCHAR CP = _ T(' A ');
这里,cp的大小是两个字节,cp的值是0x0041。
Tchach2 = _ t('中');
这里ch2的大小也是两个字节,cp的值是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 =下八位字节(汉字);
GBK =(ChHigh–0xa 0)* 100+ChLow–0xa 0;
4)根据GB2312/GBK表查询对应的拼音表示。
总结对于没有对应关系的两个字符集Unicode和GB2312/GBK,只有查表才能找到对应关系。
1.《取的拼音 实战经验:获取中文的拼音表示》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《取的拼音 实战经验:获取中文的拼音表示》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/fangchan/1070138.html