原文:http://m.survivalescaperooms.com/LonelyShadow/p/3543798.html
前不久看到有的朋友實現對商品名稱拼音的錄入,發現他的實現方式是手動輸入的,—_—#、同志們,福利來了! 微軟為了開發者實現國際化語言的互轉,提供了Microsoft Visual Studio International Pack,這個擴展包里面有中文、日文、韓文、英語等各國語言包,并提供方法實現互轉、獲取拼音、獲取字數、甚至獲取筆畫數等等。 在這里示例講的是輸入漢字,獲取其拼音,獲取拼音和獲取拼音首字母實現效果分別如下:
首先,去微軟官網下載Microsoft Visual Studio International Pack語言包,下載地址分別如下:Microsoft Visual Studio International Pack 1.0 SR1、Microsoft 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項目、窗體布局如上圖所示、
首先:添加剛剛安裝的語言包引用:
“D:/PRogram Files (x86)/Microsoft Visual Studio International Pack/Simplified Chinese Pin-Yin Conversion Library/ChnCharInfo.dll”
默認是C盤、在這里我安裝在D盤了,然后添加using引用:
1 using Microsoft.International.Converters.PinYinConverter;//導入拼音相關
創建獲取拼音的方法:


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 try12 {13 ChineseChar chineseChar = new ChineseChar(obj);14 string t = chineseChar.Pinyins[0].ToString();15 r += t.Substring(0, t.Length - 1);16 }17 catch18 {19 r += obj.ToString();20 }21 }22 return r;23 }
創建獲取漢字拼音首字母的方法:


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 try12 {13 ChineseChar chineseChar = new ChineseChar(obj);14 string t = chineseChar.Pinyins[0].ToString();15 r += t.Substring(0, 1);16 }17 catch18 {19 r += obj.ToString();20 }21 }22 return r;23 }
然后在“轉拼音”按鈕的點擊事件中調用上述方法:


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 }
在“轉首字母”按鈕點擊事件中調用上述方法:


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%,運行程序,你會發現,當點擊“轉拼音”的時候,結果是這樣子的:
并不是我開始說的那種“Gu Ying”的效果啊、這是因為我在獲取拼音的時候簡單的處理了一下:


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使用”、各種語言之間的互轉及功能示例就出來了。
新聞熱點
疑難解答