原创 c#实现把汉字转换成拼音简写收藏

 | 旧一篇: 社会生活中十二大著名法则

最近发现论坛里有很多问到c#实现把汉字转换成拼音简写的.
如:张三     转换后     zs
所以贴出一个以前用过收藏的,已调用测试:
protected   void   Button1_Click(object   sender,   EventArgs   e)
{
        this.TextBox2.Text   =   GetPYString(this.TextBox1.Text.Trim());
}


/*--------------------------汉字拼音简写转换函数-----------------------------------*/

      public   string   GetPYString(string   str)
        {
                string   tempStr   =   "";
                foreach   (char   c   in   str)
                {
                        if   ((int)c   > =   33   &&   (int)c   <=   126)
                        {//字母和符号原样保留
                                tempStr   +=   c.ToString();
                        }
                        else
                        {//累加拼音声母
                                tempStr   +=   GetPYChar(c.ToString());
                        }
                }
                return   tempStr;
        }

        public   string   GetPYChar(string   c)
        {
                byte[]   array   =   new   byte[2];
                array   =   System.Text.Encoding.Default.GetBytes(c);
                int   i   =   (short)(array[0]   -   '\0')   *   256   +   ((short)(array[1]   -   '\0'));

                if   (i   <   0xB0A1)   return   "*";
                if   (i   <   0xB0C5)   return   "a";
                if   (i   <   0xB2C1)   return   "b";
                if   (i   <   0xB4EE)   return   "c";
                if   (i   <   0xB6EA)   return   "d";
                if   (i   <   0xB7A2)   return   "e";
                if   (i   <   0xB8C1)   return   "f";
                if   (i   <   0xB9FE)   return   "g";
                if   (i   <   0xBBF7)   return   "h";
                if   (i   <   0xBFA6)   return   "g";
                if   (i   <   0xC0AC)   return   "k";
                if   (i   <   0xC2E8)   return   "l";
                if   (i   <   0xC4C3)   return   "m";
                if   (i   <   0xC5B6)   return   "n";
                if   (i   <   0xC5BE)   return   "o";
                if   (i   <   0xC6DA)   return   "p";
                if   (i   <   0xC8BB)   return   "q";
                if   (i   <   0xC8F6)   return   "r";
                if   (i   <   0xCBFA)   return   "s";
                if   (i   <   0xCDDA)   return   "t";
                if   (i   <   0xCEF4)   return   "w";
                if   (i   <   0xD1B9)   return   "x";
                if   (i   <   0xD4D1)   return   "y";
                if   (i   <   0xD7FA)   return   "z";

                return   "*";
        } 

发表于 @ 2008年01月22日 15:09:00|评论(loading...)|编辑

评论

#1 发表于2008-05-03 10:32:45  IP: 202.101.70.*
太谢谢了 正要找这样的代码
发表评论  


登录
Csdn Blog version 3.1a
Copyright © 雨尘