首页 > 编程 > .NET > 正文

ASP.NET技巧:全角字符转换为半角

2024-07-10 13:09:05
字体:
来源:转载
供稿:网友

方法一:
/**//// <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));

中国最大的web开发资源网站及技术社区,
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表