怎么说呢,一直有人想要这么一个东西,我自己实际上也一直想有这么一个东西。QString 提供了一个获取拼音首字母的函数,但那个仅限于 GB2312 中的部分字符,而不能兼容 Unicode 29000 多个汉字。
QPinyinSpells 就是为解决这个问题而产生 的,它支持:
- 多音字的识别,可以同时返回多音字的多个发音,比如 chang2,zhang3
- 支持音调处理,返回的如 chang2 代表 cháng ,最后的 2 代表是二声。
- 支持外挂词典和分词接口
- 支持获取拼音首字母和完整拼音两种模式
- 占用内存低,几十 KB 而已。
【用法】
var
ASpells:TQStringArray;
begin
ASpells:=PinyinSpells.GetSpells('这里是中国',true);
...
end;
如果要设置分词的辅助接口,直接实现 IQWordProxy 接口,然后将其赋值给 PinyinSpells.WordProxy 属性即可。
如果要设置字典的辅助接口,直接实现 IQWordDictionary 接口,然后将其赋值给 PinyinSpells.WordDictionary 属性即可。