博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Microsoft的汉语拼音组件!

Posted on 2010-06-02 17:01  孤风寂雨  阅读(559)  评论(0)    收藏  举报

先下载:
http://www.microsoft.com/downloads/details.aspx?FamilyID=44cac7f0-633b-477d-aed2-99aee642fc10&DisplayLang=zh-cn(网址里有空格的话,自己去掉一下)

下载完毕后,进行解压,里面有7个msi文件,其中:CHSPinYinConv.msi就是汉字拼音相关的,CHTCHSConv.msi是

进行 简体与繁体进行相互转换的,值安装这2个msi即可。安装完毕后,需要在VS里添加引用,分别引用:

C:\Program Files\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library下和

C:\Program Files\Microsoft Visual Studio International Pack\Traditional Chinese to Simplified Chinese Conversion

Library and Add-In Tool下的dll即可使用。

 

代码
 1 using Microsoft.International.Converters.PinYinConverter;
 2 using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
 3 
 4         public static string GetPinyin(string str)
 5         {
 6             string r = string.Empty;
 7             foreach (char obj in str)
 8             {
 9                 try
10                 {
11                     ChineseChar chineseChar = new ChineseChar(obj);
12                     string t = chineseChar.Pinyins[0].ToString();
13                     r += t.Substring(0, t.Length - 1);
14                 }
15                 catch
16                 {
17                     r += obj.ToString();
18                 }
19             }
20             return r;
21         }
22 
23         public static string GetShortPinyin(string str)
24         {
25             string r = string.Empty;
26             foreach (char obj in str)
27             {
28                 try
29                 {
30                     ChineseChar chineseChar = new ChineseChar(obj);
31                     string t = chineseChar.Pinyins[0].ToString();
32                     r += t.Substring(01);
33                 }
34                 catch
35                 {
36                     r += obj.ToString();
37                 }
38             }
39             return r;
40         }
41 
42 

 

 

调用:
GetPinyin("全拼 孤风寂雨");
GetShortPinyin("首字符 孤风寂雨");

 

但是这个也有一定的局限性,比如多音字“区”,一般用作是Qu,这里认为是Ou。