先下载:
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(0, 1);
33 }
34 catch
35 {
36 r += obj.ToString();
37 }
38 }
39 return r;
40 }
41
42
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(0, 1);
33 }
34 catch
35 {
36 r += obj.ToString();
37 }
38 }
39 return r;
40 }
41
42
调用:
GetPinyin("全拼 孤风寂雨");
GetShortPinyin("首字符 孤风寂雨");
但是这个也有一定的局限性,比如多音字“区”,一般用作是Qu,这里认为是Ou。

浙公网安备 33010602011771号