汉字转换成拼音大致有四种方法
一、自定义转换表
它的大致原理:汉字本身就有一个GB2312编码表,一个拼音可能对应多个汉字,而拼音的组合本来就不多,可以建立一个拼音音节表,而这两个表之间存在对某种对应关系,利用这两个表就能够实现汉拼转换。
网上有已封装好的类,不过据说这种方法可能对生僻字支持不好
二、IME的IFELanguage接口
据说是一个比较好的方法,没有测试过,也没找到详细的资料,只有一份没有注释的代码,貌似比较复杂
三、Simplified Chinese Pin-Yin Conversion Library
MS提供了一个Microsoft Visual Studio International Pack 类库软件包,目前是1.0 SR1,其中有一个类库:
- Simplified Chinese Pin-Yin Conversion Library - 支持获取简体中文字符的常用属性比如拼音,多音字,同音字,笔画数。
从MS站点
下载这个软件包,安装其中的CHSPinYinConv.msi,在VS里添加引用,目标是其它装路径下的ChnCharInfo.dll,如
C:/Program Files/Microsoft Visual Studio International Pack/Simplified Chinese Pin-Yin Conversion Library/ChnCharInfo.dll,然后 using Microsoft.International.Converters.PinYinConverter
以下是范例代码
通过ChineseChar.PinYins会返回这个汉字的所有拼音,至于哪一个更准确,没有找到好的方法,这里默认使用第一个,带来的问题是“邹”会返回“ju”,“厂”会返回“an”
四、利用易语言制作DLL
在易语言里有一个“取拼音”子程序,用于取得一个汉字的全拼
以下是DLL接口函数的范例代码
易中文本型是ANSI,一个汉字占两个字符,这就需要一种方法来判断字符是否为汉字首字符
除范例代码中的负判断外,还有另一种方法可参考
DLL的调用与WinAPI相同,将dll文件放到程序目录,在代码中Import
参考资料:
C#汉字转换拼音方法
http://www.cnblogs.com/zt04985807/archive/2009/01/09/1372953.htmlC#将中文词组处理成拼音
http://blog.sina.com.cn/s/blog_589d32f501000aya.htmlCSDN技术中心 用C#实现汉字转化为拼音
http://dev.csdn.net/Develop/article/25/25536.shtmC#将中文词组处理成拼音
http://blog.sina.com.cn/s/blog_589d32f501000aya.html使用微软的多语言工具包进行网站简体与繁体的互转和得到汉字、拼音、笔画等相关信息
http://space.itpub.net/15723462/viewspace-591074