首先在項目中引入nuget包NPinyin.Core,然后新建靜態轉換類,即可在中暢用。
1 public static class PinYinCast 2 { 3 private static Encoding gb2312 = Encoding.GetEncoding("GB2312"); 4 5 /// <summary> 6 /// 漢字轉大寫全拼 7 /// </summary> 8 /// <param name="strChinese"></param> 9 /// <returns></returns> 10 public static string ConvertToAllSpell(string strChinese) 11 { 12 try 13 { 14 if (strChinese.Length != 0) 15 { 16 StringBuilder fullSpell = new StringBuilder(); 17 for (int i = 0; i < strChinese.Length; i++) 18 { 19 var chr = strChinese[i]; 20 fullSpell.Append(GetSpell(chr)); 21 } 22 return fullSpell.ToString().ToUpper();//轉小寫方法為 .ToLower() 23 } 24 } 25 catch (Exception e) 26 { 27 Console.WriteLine("出錯!" + e.Message); 28 } 29 return string.Empty; 30 } 31 32 /// <summary> 33 /// 漢字轉首字母大寫 34 /// </summary> 35 /// <param name="strChinese"></param> 36 /// <returns></returns> 37 public static string GetFirstSpell(string strChinese) 38 { 39 try 40 { 41 if (strChinese.Length != 0) 42 { 43 StringBuilder fullSpell = new StringBuilder(); 44 for (int i = 0; i < strChinese.Length; i++) 45 { 46 var chr = strChinese[i]; 47 fullSpell.Append(GetSpell(chr)[0]); 48 } 49 return fullSpell.ToString().ToUpper();//轉小寫方法為 .ToLower() 50 } 51 } 52 catch (Exception e) 53 { 54 Console.WriteLine("出錯!" + e.Message); 55 } 56 57 return string.Empty; 58 } 59 60 private static string GetSpell(char chr) 61 { 62 var coverchr = NPinyin.Pinyin.GetPinyin(chr); 63 return coverchr; 64 } 65 }