设为首页
加入收藏
站内地图
旧版入口
当前位置:首页 > 站长学院 > 网络编程 > ASP.NET

全角字符转换为半角

作者:佚名 出处:网络转载 时间:12-12 点击:

内容载入中...
     方法一:
  /**//// <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
    。

收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口

站长学院

推荐信息