WEB开发网
开发学院WEB开发ASP.NET 全角字符转换为半角 阅读

全角字符转换为半角

 2006-12-11 17:20:11 来源:WEB开发网   
核心提示:方法一:/** <summary> /// 判断字符是否英文半角字符或标点 /// </summary> /// <remarks> /// 32 空格 /// 33-47 标点 /// 48-57 0~9 /// 58-64 标点 /// 65-90 A~

方法一:
/**//// <summary>
   /// 判断字符是否英文半角字符或标点
   /// </summary>
   /// <remarks>
   /// 32   空格
   /// 33-47   标点
   /// 48-57   0~9
   /// 58-64   标点
   /// 65-90   A~Z
   /// 91-96   标点
   /// 97-122   a~z
   /// 123-126  标点
   /// </remarks>
   public static bool IsBjChar(char c)
   {
    int i = (int)c;
    return i >= 32 && i <= 126;
   }

   /**//// <summary>
   /// 判断字符是否全角字符或标点
   /// </summary>
   /// <remarks>
   /// <para>全角字符 - 65248 = 半角字符</para>
   /// <para>全角空格例外</para>
   /// </remarks>
   public static bool IsQjChar(char c)
   {
    if (c == '\u3000') return true;

  int i = (int)c - 65248;
    if (i < 32) return false;
    return IsBjChar((char)i);
   }

   /**//// <summary>
   /// 将字符串中的全角字符转换为半角
   /// </summary>
   public static string ToBj(string s)
   {
    if (s == null || s.Trim() == string.Empty) return s;

  StringBuilder sb = new StringBuilder(s.Length);
    for (int i = 0; i < s.Length; i++)
    {
     if (s[i] == '\u3000')
      sb.Append('\u0020');
     else if (IsQjChar(s[i]))
      sb.Append((char)((int)s[i] - 65248));
     else
      sb.Append(s[i]);
    }

  return sb.ToString();
   }

方法二:
添加 Microsoft Visual Basic.NET Runtime 引用。
Console.WriteLine(Microsoft.VisualBasic.Strings.StrConv("abcdefg", VbStrConv.Narrow, 0));
http://www.cnblogs.com/ami/archive/2006/12/11/588435.html

Tags:全角 字符 转换

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接