漢字轉拼音 - 輸入漢字獲取其拼音

轉載自: http://www.cnblogs.com/LonelyShadow/p/3543798.htmlhtml

 

 

前不久看到有的朋友實現對商品名稱拼音的錄入,發現他的實現方式是手動輸入的,—_—#、同志們,福利來了!
 微軟爲了開發者實現國際化語言的互轉,提供了Microsoft Visual Studio International Pack,這個擴展包裏面有中文、日文、韓文、英語等各國語言包,並提供方法實現互轉、獲取拼音、獲取字數、甚至獲取筆畫數等等。
 在這裏示例講的是輸入漢字,獲取其拼音,獲取拼音和獲取拼音首字母實現效果分別以下: 1.jpg   2.jpg
 首先,去微軟官網下載Microsoft Visual Studio International Pack語言包,下載地址分別以下: Microsoft Visual Studio International Pack 1.0 SR1Microsoft Visual Studio International Feature Pack 2.0
 下載後分別是「vsintlpack1.zip」、「Vsintlpack2.msi」、雙擊「Vsintlpack2.msi」安裝、路徑隨意、可是要記得、由於一會要引用的、  安裝「Vsintlpack2.msi」以後、解壓「vsintlpack1.zip」、裏面包含七個語言包、  例如中文轉拼音「CHSPinYinConv.msi」、簡體繁體互轉「CHTCHSConv.msi」等等。。
 在這裏咱們用到的是「CHSPinYinConv.msi」、雙擊安裝成功後、打開Visual Studio、新建一個WinForm項目、窗體佈局如上圖所示、ide

 

首先:添加剛剛安裝的語言包引用:佈局

「D:\Program Files (x86)\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library\ChnCharInfo.dll」post

默認是C盤、在這裏我安裝在D盤了,而後添加using引用:this

1 using Microsoft.International.Converters.PinYinConverter;//導入拼音相關

 建立獲取拼音的方法:google

 1 /// <summary> 
 2 /// 漢字轉化爲拼音
 3 /// </summary> 
 4 /// <param name="str">漢字</param> 
 5 /// <returns>全拼</returns> 
 6 public static string GetPinyin(string str)
 7 {
 8     string r = string.Empty;
 9     foreach (char obj in str)
10     {
11         try
12         {
13             ChineseChar chineseChar = new ChineseChar(obj);
14             string t = chineseChar.Pinyins[0].ToString();
15             r += t.Substring(0, t.Length - 1);
16         }
17         catch
18         {
19             r += obj.ToString();
20         }
21     }
22     return r;
23 }
漢字轉化爲拼音

 

 建立獲取漢字拼音首字母的方法:url

 1 /// <summary> 
 2 /// 漢字轉化爲拼音首字母
 3 /// </summary> 
 4 /// <param name="str">漢字</param> 
 5 /// <returns>首字母</returns> 
 6 public static string GetFirstPinyin(string str)
 7 {
 8     string r = string.Empty;
 9     foreach (char obj in str)
10     {
11         try
12         {
13             ChineseChar chineseChar = new ChineseChar(obj);
14             string t = chineseChar.Pinyins[0].ToString();
15             r += t.Substring(0, 1);
16         }
17         catch
18         {
19             r += obj.ToString();
20         }
21     }
22     return r;
23 }
漢字轉化爲拼音首字母

 

 而後在「轉拼音」按鈕的點擊事件中調用上述方法:spa

1 // 漢字轉拼音
2 private void btn_One_Click(object sender, EventArgs e)
3 {
4     string source = this.txt_ChineseCharacter_One.Text.Trim();  // 獲得輸入的源字符
5     string result = GetPinyin(source);  // 調用方法,獲取拼音
6     this.txt_Pinyin_One.Text = result;
7 }
而後在「轉拼音」按鈕的點擊事件中調用上述方法

 

 在「轉首字母」按鈕點擊事件中調用上述方法:code

1 // 轉首字母
2 private void btn_Two_Click(object sender, EventArgs e)
3 {
4     string source = this.txt_ChineseCharacter_One.Text.Trim();  // 獲得輸入的源字符
5     string result = GetFirstPinyin(source);  // 調用方法,獲取拼音
6     this.txt_Pinyin_One.Text = result;
7 }
在「轉首字母」按鈕點擊事件中調用上述方法:

 到此,已經完成了80%,運行程序,你會發現,當點擊「轉拼音」的時候,結果是這樣子的: 3.jpg 並非我開始說的那種「Gu Ying」的效果啊、這是由於我在獲取拼音的時候簡單的處理了一下:orm

 1 // 漢字轉拼音
 2 private void btn_One_Click(object sender, EventArgs e)
 3 {
 4     string source = this.txt_ChineseCharacter_One.Text.Trim();  // 獲得輸入的源字符
 5 
 6     string result = string.Empty;   // 轉拼音的結果
 7     string temp = string.Empty; // 下面foreach用到的臨時變量
 8     foreach (char item in source)   // 遍歷每一個源字符
 9     {
10         temp = GetPinyin(item.ToString());  // 將每一個字符轉拼音
11         // 處理:獲取首字母大寫、其他字母小寫
12         result += (String.Format("{0}{1} ", temp.Substring(0, 1).ToUpper(), temp.Substring(1).ToLower()));
13     }
14 
15     //string result = GetPinyin(source);  // 調用方法,獲取拼音
16     this.txt_Pinyin_One.Text = result;
17 }
處理拼音結果

 OK、到此、這個功能已經實現完成了,還有其他的語言包功能,和此相似,你們能夠百度「Microsoft Visual Studio International Pack使用」、各類語言之間的互轉及功能示例就出來了。

 

 

【來自:LonelyShadow http://www.cnblogs.com/LonelyShadow

 
 
 
相關文章
相關標籤/搜索