[C#] 超簡單簡繁轉換,中文轉拼音,拼音轉中文
2017-07-25
最近因為在處理一些專案我必須要把繁體中文轉成拼音後再做處理,後來網路上找一下資源蠻簡單的簡單紀錄一下
1. 從NUGET 下載 https://www.nuget.org/packages/NPinyin/ 當然你可以從Visual Studio 內建的NUGET 管理套件去下載
2. 之後 轉的程式碼也很簡單 就是 :
var strs =new string[]{ "當麻許","測試","拼音","中英文abcd交雜看看"}; Response.Write("繁體轉換拼音:" + "<br>"); foreach (var s in strs) { Response.Write(NPinyin.Pinyin.GetPinyin(s)+"<br>"); }
但是結果:
感覺怪怪的,我想了一下應該是library 對於繁體他無法辨認,看起來他真的是逐字去做,感謝這世界的大神給我們方便的library
3. 所以我們先將繁體中文轉成簡體中文 然後再轉成拼音試試看 ,首先下載 套件 https://www.nuget.org/packages/ChineseConverter/ ,當然你可以使用Visual Studio 內建的套件去下載
之後我們在轉拼音之前先轉為簡體再轉
Response.Write("簡體轉換拼音:" + "<br>"); foreach (var s in strs) { var simplifiedStr = Microsoft.International.Converters. TraditionalChineseToSimplifiedConverter. ChineseConverter.Convert(s , Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter.ChineseConversionDirection.TraditionalToSimplified); Response.Write(NPinyin.Pinyin.GetPinyin(simplifiedStr) + "<br>"); }
結果:
4. 再將拼音 轉回 中文 ,因為是拼音就跟注音一樣一個發音可能對應到很多中文,但是NPINYIN 這套件支援轉回來,但是他要一個字一個字轉不能一次送一句
C# code :
Response.Write("簡體轉換拼音再轉回中文:" + "<br>"); foreach (var s in strs) { var simplifiedStr = Microsoft.International.Converters. TraditionalChineseToSimplifiedConverter. ChineseConverter.Convert(s , Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter.ChineseConversionDirection.TraditionalToSimplified); simplifiedStr = NPinyin.Pinyin.GetPinyin(simplifiedStr); var simplifiedStrs = simplifiedStr.Split(' '); if (simplifiedStrs != null) { foreach (var sStr in simplifiedStrs) { Response.Write(sStr+" : " + NPinyin.Pinyin.GetChineseText(sStr) + "<br>"); } } }
很簡單吧,筆記一下..
reference : https://code.google.com/archive/p/npinyin/