夏雷

积极人生,努力加油!
全角转半角,半角转全角,判断字符是否为全角

 全角转半角,半角转全角,判断字符是否为全角
     本贴为转自别人的blog,希望对朋友在datagridview或文本框开发过程中有全角半角的限制起作用

 /// <summary>
       /// 全角转半角的函数(DBC case)
       /// </summary>
       /// <param name="input">任意字符串</param>
       /// <returns>半角字符串</returns>
       ///<remarks>
       ///全角空格为12288,半角空格为32
       ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
       ///</remarks>
       public string ToDBC(string input)
       {
           char[] c = input.ToCharArray();
           for (int i = 0; i < c.Length; i++)
           {
               if (c[i] == 12288)
               {
                   c[i] = (char)32;
                   continue;
               }
               if (c[i] > 65280 && c[i] < 65375)
                   c[i] = (char)(c[i] - 65248);
           }


           string str = c.ToString().Replace("。", ".");
           return new string(c);
       }


       /// <summary>
       /// 判断字符是否为全角字符
       /// </summary>
       /// <param name="c">任意字符</param>
       /// <returns>全角字符返回true,半角返回false</returns>
       public bool isCharDBC(char c)
       {
           if (c > 65280 && c < 65375)
               return true;
           else
               return false;
       }


       /// <summary>
       /// 半角转全角的函数(SBC case)
       /// </summary>
       /// <param name="input">任意字符串</param>
       /// <returns>全角字符串</returns>
       ///<remarks>
       ///全角空格为12288,半角空格为32
       ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
       ///</remarks>       
       public string ToSBC(string input)
       {
           //半角转全角:
           char[] c = input.ToCharArray();
           for (int i = 0; i < c.Length; i++)
           {
               if (c[i] == 32)
               {
                   c[i] = (char)12288;
                   continue;
               }
               if (c[i] < 127)
                   c[i] = (char)(c[i] + 65248);
           }
           return new string(c);
       }

 

posted on 2008-12-04 21:11  夏雷  阅读(1011)  评论(2编辑  收藏  举报