zoukankan      html  css  js  c++  java
  • HOWTO: 判断全角和半角

    ASCII码大于255,则为双字节?

    另外查看MSDN中KeyPress事件

    1,FCL

    System.Text.UnicodeEncoding.Unicode.GetByteCoun(str)

    试验无效。全部返回2,又试验ASCIIEncoding.ASCII类的同名方法,全部返回1

    2,Regex

    全角:[^\x00-\xff]

    3,第三方实现

       1:  #region 半全角互换
       2:  /// <summary>
       3:  /// 转全角的函数(SBC case)
       4:  /// </summary>
       5:  /// <param name="input">任意字符串</param>
       6:  /// <returns>全角字符串</returns>
       7:  ///<remarks>
       8:  ///全角空格为12288,半角空格为32

    9: ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248

      10:  ///</remarks>        
      11:  public static string ToSBC(string input)
      12:  {
      13:      //半角转全角:
      14:      char[] c = input.ToCharArray();
      15:      for (int i = 0; i < c.Length; i++)
      16:      {
      17:          if (c[i] == 32)
      18:          {
      19:              c[i] = (char)12288;
      20:              continue;
      21:          }
      22:          if (c[i] < 127 && c[i] > 32)
      23:          {
      24:              c[i] = (char)(c[i] + 65248);
      25:          }
      26:      }
      27:      return new string(c);
      28:  }
      29:   
      30:  /// <summary>
      31:  /// 转半角的函数(DBC case)
      32:  /// </summary>
      33:  /// <param name="input">任意字符串</param>
      34:  /// <returns>半角字符串</returns>
      35:  ///<remarks>
      36:  ///全角空格为12288,半角空格为32(此处不必转空格)

    37: ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248

      38:  ///</remarks>
      39:  public static string ToDBC(string input)
      40:  {
      41:      char[] c = input.ToCharArray();
      42:      for (int i = 0; i < c.Length; i++)
      43:      {
      44:          if (c[i] == 12288)
      45:          {
      46:              c[i] = (char)32;
      47:              continue;
      48:          }
      49:          if (c[i] > 65280 && c[i] < 65375)
      50:          {
      51:              c[i] = (char)(c[i] - 65248);
      52:          }
      53:      }
      54:      return new string(c);
      55:  }
      56:  #endregion
  • 相关阅读:
    Bootstrap 插件收集
    target和currentTarget
    微信小程序
    flex
    vue中使用icon和打包
    rem的使用
    vue中使用sass和compass
    vue父子组件传递参数
    weex
    常用软件&&网址
  • 原文地址:https://www.cnblogs.com/yicone/p/580689.html
Copyright © 2011-2022 走看看