C#漢字轉拼音的源碼

來源:互聯網
上載者:User

在做一些MIS系統,尤其是人事相關的系統時,通常會用到需要將使用者的姓名,轉成漢語拼音的情形。

我自己在做一個衛生系統的小東東的時候,就遇到了這個要求,現在,也把這個的實現分享出來,原始碼來源網上,由於是很早收集的,原作者已不詳,就不標註了。

我進行了一些最佳化和整合,核心代碼如下:

/// <summary>/// 完整轉換函式,輸出全拼的結果/// </summary>/// <param name="CnString">傳入的中文字串</param>/// <returns>轉換出的拼音組合</returns>public static string FullConvert(string CnString){    byte[] btArray = new byte[2];    int cAscii = 0;    short idx1, idx2;    StringBuilder sbResult = new StringBuilder();    char[] tempCArray = CnString.ToCharArray();    for (int idx = 0; idx < tempCArray.Length; idx++)    {        btArray = Encoding.Default.GetBytes(tempCArray[idx].ToString());        if (btArray.Length == 1)            sbResult.Append(tempCArray[idx]);        else        {            idx1 = (short)btArray[0];            idx2 = (short)btArray[1];            cAscii = idx1 * 256 + idx2 - 65536;            if (cAscii > 0  &&  cAscii < 160)                sbResult.Append(tempCArray[idx]);            else            {                for (int i = pyValueArr.Length - 1; i >= 0; i--)                {                    if (pyValueArr[i] <= cAscii)                    {                        sbResult.Append(pyCharacterArr[i]);                        break;                    }                }            }        }    }    return sbResult.ToString();}/// <summary>/// 只輸出首字母的組合/// </summary>/// <param name="CnString">待轉換的中文字串</param>/// <returns>拼音首字母組合結果</returns>public static string CapitalCovert(string CnString){    StringBuilder sbTemp = new StringBuilder();    for (int i = 0; i < CnString.Length; i++)    {        sbTemp.Append(GetCnCharAreaCode(CnString.Substring(i, 1)));    }    return sbTemp.ToString();}

使用也非常簡單:

Console.WriteLine("輸出漢字的全拼:");Console.WriteLine(DeltaCat.Net.Cn2Py.FullConvert("三角貓"));Console.WriteLine("輸出漢字的首字母組合:");Console.WriteLine(DeltaCat.Net.Cn2Py.CapitalCovert("三角貓 @ 真U14.CN"));
demo代碼:c#漢字轉拼音
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.