HOWTO: 判斷全形和半形

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.