一种将汉字转化为拼音的方法
网上常见的实现方式只能是实现常见字(也就是一级汉字)的搜索,因为一级汉字是按
照拼音编码的,所以可以根据汉字的机内码对照来直接得到它的拼音,而对于非常见字(也
就是二级汉字),其排序方式是按照偏旁部首来的,这个时候就不能采用上面的机内码的方式来得到拼音了。考虑到我们输入汉字的时候,输入法中可以显示非常见字,那么,我们是不是可以利用拼音输入法的字库来实现汉字到拼音的转换呢?答案是肯定的.
在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
关于拼音索引的几点心得
最新推荐文章于 2021-01-04 15:21:11 发布
1056

被折叠的 条评论
为什么被折叠?



