当前位置:网站首页 > 软件教程 > 正文

ASP.NET中如何获取汉字的拼音介绍

作者:admin发布时间:2021-11-02分类:软件教程浏览:评论:0


导读:在项目中,有时修改需要获得输入汉字的拼音,找了许多资料,也参考了一些示例,终于实现了此功能,但是还是有一点BUG,有一些比较偏的汉字获取不到,代码如下:      //此方法用于取字母       priva

在新项目中,有时候改动必须得到键入汉字的拼音,找了很多材料,也参照了一些实例,

总算建立了此作用,可是或是有一点BUG,有一些较为偏的中国汉字获得不上,编码如下所示:

       //此方式 用以取英文字母

        private static string GetCharSpellCode(string CnChar)
        { 
           long iCnChar;

            byte[] ZW = System.Text.Encoding.Default.GetBytes(CnChar);

            //如果是英语字母,则立即回到此英文字母
            if (ZW.Length == 1)
            {
                return CnChar.ToUpper();
            }
            else
            {
                int i1 = (short)(ZW[0]);
                int i2 = (short)(ZW[1]);
                iCnChar = i1 * 256 i2;
            }

            //分辨编号区段,回到对应的英文字母

            if ((iCnChar >= 45217) && (iCnChar <= 45252))         //45217..45252 
            {
                return "A";
            }
            else if ((iCnChar >= 45253) && (iCnChar <= 45760))  //45253..45760 
            {
                return "B";
            }
            else if ((iCnChar >= 45761) && (iCnChar <= 46317))   //45761..46317
            {
                return "C";
            }
            else if ((iCnChar >= 46318) && (iCnChar <= 46825))  //46318..46825 
            {
                return "D";
            }
            else if ((iCnChar >= 46826) && (iCnChar <= 47009))   //46826..47009 
            {
                return "E";
            }
            else if ((iCnChar >= 47010) && (iCnChar <= 47296))  //47010..47296 
            {
                return "F";
            }
            else if ((iCnChar >= 47297) && (iCnChar <= 47613))    //47297..47613 
            {
                return "G";
            }
            else if ((iCnChar >= 47614) && (iCnChar <= 48118))   //47614..48118 
            {
                return "H";
            }
            else if ((iCnChar >= 48119) && (iCnChar <= 49061))    //48119..49061 
            {
                return "J";
            }
            else if ((iCnChar >= 49062) && (iCnChar <= 49323))   //49062..49323 
            {
                return "K";
            }
            else if ((iCnChar >= 49324) && (iCnChar <= 49895))    //49324..49895 
            {
                return "L";
            }
            else if ((iCnChar >= 49896) && (iCnChar <= 50370))  //49896..50370 
            {
                return "M";
            }

            else if ((iCnChar >= 50371) && (iCnChar <= 50613))  //50371..50613 
            {
                return "N";
            }
            else if ((iCnChar >= 50614) && (iCnChar <= 50621))   //50614..50621 
            {
                return "O";
            }
            else if ((iCnChar >= 50622) && (iCnChar <= 50905))  //50622..50905 
            {
                return "P";
            }
            else if ((iCnChar >= 50906) && (iCnChar <= 51386))  //50906..51386 
            {
                return "Q";
            }
            else if ((iCnChar >= 51387) && (iCnChar <= 51445))    //51387..51445 
            {
                return "R";
            }
            else if ((iCnChar >= 51446) && (iCnChar <= 52217))   //51446..52217 
            {
                return "S";
            }
            else if ((iCnChar >= 52218) && (iCnChar <= 52697))   //52218..52697 
            {
                return "T";
            }
            else if ((iCnChar >= 52698) && (iCnChar <= 52979))   //52698..52979 
            {
                return "W";
            }
            else if ((iCnChar >= 52980) && (iCnChar <= 53640))   //52980..53640
            {
                return "X";
            }
            else if ((iCnChar >= 53689) && (iCnChar <= 54480))   //53689..54480 
            {
                return "Y";
            }
            else if ((iCnChar >= 54481) && (iCnChar <= 55289))   //54481..55289
            {
                return "Z";
            }
            else return (" ");       //沒有寻找的回到一个空格符

        }

       //此方式 用以取字符串数组中每一个字符,如果有英文单词间的空格符,则取英语单词一首写

      public static string GetSpellCode(string CnStr)
        {
            string strTemp = "";
            if (CnStr.IndexOf(' ') > 0)
            {
                string[] arr = CnStr.Split(' ');

                int iLen = arr.Length; // CnStr.Length;
                int i = 0;

                for (i = 0; i < iLen; i )
                {
                    //strTemp = GetCharSpellCode(CnStr.Substring(i, 1));
                    strTemp = GetCharSpellCode(arr[i].Substring(0, 1));
                }
            }
            else
            {
                int iLen = CnStr.Length;
                int i = 0;

                for (i = 0; i < iLen; i )
                {
                    strTemp = GetCharSpellCode(CnStr.Substring(i, 1));
                    //strTemp = GetCharSpellCode(arr[i].Substring(0, 1));
                }
            }

            return strTemp;
        }

标签:ASP.NET


欢迎 发表评论: