关于拼音索引的几点心得

一种将汉字转化为拼音的方法 网上常见的实现方式只能是实现常见字(也就是一级汉字)的搜索,因为一级汉字是按 照拼音编码的,所以可以根据汉字的机内码对照来直接得到它的拼音,而对于非常见字(也 就是二级汉字),其排序方式是按照偏旁部首来的,这个时候就不能采用上面的机内码的方式来得到拼音了。考虑到我们输入汉字的时候,输入法中可以显示非常见字,那么,我们是不是可以利用拼音输入法的字库来实现汉字到拼音的转换呢?答案是肯定的. 在windows系统中,拼音输入法的字库文件为c:/winnt/system/winpy.mb,windows xp系统中有一个imegen.exe程序,该程序用来协助用户生成自己的输入法,同时它还提供了一个逆转换功能,可以将winpy.mb文件转换成普通的txt文件,该文件中包含了所有字和与之相对应的拼音,利用这个文件,我们就可以得到所有的输入法中能够输入的汉字的拼音了. Imegen.exe程序界面 程序运行界面: 主要代码: // 读取由windows拼音输入法生成的字库文件 QFile file( "D://qt_study//hz2py//winpy.txt" ); if ( file.open( IO_ReadOnly ) ) { QTextStream stream( &file ); QString line; i = 1; while ( !stream.atEnd()) { line = stream.readLine(); lines+=line; i++; QChar tt_pre = 0,tt_cur = 0; /** 找到第一个拼音字符,考虑到字库的特殊性,line的length肯定大于1, 而且第一个字母至少在j==1的情况下才会出现,所以有下面的获取方式 */ for(j=1;j
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值