精华内容
下载资源
问答
  • 大家都知道在自然语言处理过程中,全角、半角的的不一致会导致信息抽取不一致...这篇文章通过示例代码给大家详细的介绍了Python实现全角半角字符的方法,有需要的朋友们可以参考借鉴,下面跟着小编一起学习学习吧。
  • 全角字符转换成半角字符
  • 主要介绍了MySQL存储全角字符和半角字符的区别的相关资料,需要的朋友可以参考下
  • 解决任何情况下的全角半角字符转化问题,有效的控制程序中出现全角半角问题。方法简单,易懂。
  • java全角字符转换为半角 半角转全角

    千次阅读 2012-05-30 10:20:15
    /// /// 判断字符是否英文半角字符或标点 /// /// /// 32 空格 /// 33-47 标点 /// 48-57 0~9 /// 58-64 标点 /// 65-90 A~Z /// 91-96 标点 /// 97-122 a~z /// 123-
    /// <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();
        }
    


    全角空格为12288,半角空格为32

    其他字符半角(33-126)与考试.大提示全角(65281-65374)的对应关系是:均相差65248


    /***************************************
    *
    * 全角转换成半角
    * @param input 原始字符串
    * @return 转换后的字符串
    *
    ***************************************/
    public static String QtoB(String input) {
    char c[] = input.toCharArray();
    for (int i = 0; i < c.length; i++) {
    if (c[i] == '\u3000') {
    c[i] = ' ';
    }?
    else if (c[i] > '\uFF00' && c[i] < '\uFF5F') {
    c[i] = (char) (c[i] - 65248);
    }
    }
    return new String(c);
    }
    //半角转全角
    public static String BtoQ(String input){
    char c[] = input.toCharArray();
    for ( int i=0; i<c.length;i++ ) {
    if (c[i] ==' ') {
    c[i] = '\u3000';
    } 
    else if (c[i]<'\177') {
    c[i]= (char) (c[i]+65248);
    }
    }
    return new String(c);
    }


    展开全文
  • java实现:半角字符全角字符相互转换~

    平凡也就两个字: 懒和惰;
    成功也就两个字: 苦和勤;
    优秀也就两个字: 你和我。
    跟着我从0学习JAVA、spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!
    关注微信公众号【 IT特靠谱 】,每天都会分享技术心得~

     

    Java实现全角和半角字符相互转换

    1 中文全角和半角输入的区别

          在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为”半角”,相对地把一个汉字所占的位置称为”全角”。

     

    2 什么是半角和全角?

    2.1 全角

          指一个字符占用两个标准字符位置。

          全角指一个字符占用两个标准字符位置的状态。汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。全角状态下字母、数字、符号和汉字都会占两个字节的位置,也就是一个汉字那么宽。

    2.2 半角

          指一字符占用一个标准的字符位置。

          是指英文ASCII码中的各种符号。半角的显示内码都是一个字节。半角状态下字母、数字和符号一般会占一个字节,也就是半个汉字的位置;汉字占2个字节,汉汉字属于全角

     

    3 全角和半角字符对应表

          1)半角字符(除空格外)是从33(0x21)开始到126(0x7E)结束;
          2)与半角字符对应的全角字符是从65281(unicode编码的0xFF01)开始到65374(unicode编码的0xFF3E)结束;
          3)其中半角的空格是32(0x20).对应的全角空格是12288(unicode编码的0x3000);
          4)半角和全角的关系很明显,除空格外的字符偏移量都是是65248(65281-33 = 65248)

          全角和半角字符对应表如下:

    全角和半角字符对应表
    ASCII全角字符Unicode半角字符
    0x20" "空格U+3000" "空格
    0x21U+ff01!
    0x22"U+ff02"
    0x23#U+ff03#
    0x24$U+ff04$
    0x25%U+ff05%
    0x26&U+ff06&
    0x27'U+ff07'
    0x28U+ff08(
    0x29U+ff09)
    0x2a*U+ff0a*
    0x2b+U+ff0b+
    0x2cU+ff0c,
    0x2dU+ff0d-
    0x2eU+ff0e.
    0x2f/U+ff0f/
    0x300U+ff100
    0x311U+ff111
    0x322U+ff122
    0x333U+ff133
    0x344U+ff144
    0x355U+ff155
    0x366U+ff166
    0x377U+ff177
    0x388U+ff188
    0x399U+ff199
    0x3aU+ff1a:
    0x3bU+ff1b;
    0x3c<U+ff1c<
    0x3d=U+ff1d=
    0x3e>U+ff1e>
    0x3fU+ff1f?
    0x40@U+ff20@
    0x41AU+ff21A
    0x42BU+ff22B
    0x43CU+ff23C
    0x44DU+ff24D
    0x45EU+ff25E
    0x46FU+ff26F
    0x47GU+ff27G
    0x48HU+ff28H
    0x49IU+ff29I
    0x4aJU+ff2aJ
    0x4bKU+ff2bK
    0x4cLU+ff2cL
    0x4dMU+ff2dM
    0x4eNU+ff2eN
    0x4fOU+ff2fO
    0x50PU+ff30P
    0x51QU+ff31Q
    0x52RU+ff32R
    0x53SU+ff33S
    0x54TU+ff34T
    0x55UU+ff35U
    0x56VU+ff36V
    0x57WU+ff37W
    0x58XU+ff38X
    0x59YU+ff39Y
    0x5aZU+ff3aZ
    0x5b[U+ff3b[
    0x5c\U+ff3c\
    0x5d]U+ff3d]
    0x5e^U+ff3e^
    0x5f_U+ff3f_
    0x60`U+ff40`
    0x61aU+ff41a
    0x62bU+ff42b
    0x63cU+ff43c
    0x64dU+ff44d
    0x65eU+ff45e
    0x66fU+ff46f
    0x67gU+ff47g
    0x68hU+ff48h
    0x69iU+ff49i
    0x6ajU+ff4aj
    0x6bkU+ff4bk
    0x6clU+ff4cl
    0x6dmU+ff4dm
    0x6enU+ff4en
    0x6foU+ff4fo
    0x70pU+ff50p
    0x71qU+ff51q
    0x72rU+ff52r
    0x73sU+ff53s
    0x74tU+ff54t
    0x75uU+ff55u
    0x76vU+ff56v
    0x77wU+ff57w
    0x78xU+ff58x
    0x79yU+ff59y
    0x7azU+ff5az
    0x7b{U+ff5b{
    0x7c|U+ff5c|
    0x7d}U+ff5d}
    0x7eU+ff5e~

     

    4 半角和全角字符转换

    4.1 打印出java中所有Unicode编码的字符

      /**
       * 打印出java中所有Unicode编码的字符
       */
      private static void printAllCharacter() {
        for (int i = Character.MIN_VALUE; i <= Character.MAX_VALUE; ++i) {
          System.out.println(i + "   " + (char) i);
        }
      }

     

    4.2 java转换半角--->全角

          半角转全角java实现:

      /**
       * 半角转全角的函数(SBC case) 
       * 全角空格为12288,半角空格为32,其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
       *
       * @param input 任意字符串
       * @return 全角字符串
       */
      public static String toSbc(String input) {
        if (StringUtils.isBlank(input)) {
          return "";
        }
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
          if (c[i] == 32) {
            c[i] = (char) 12288;
            continue;
          }
          if (c[i] < 127) {
            c[i] = (char) (c[i] + 65248);
          }
        }
        return new String(c);
      }

     

    4.3 java转换全角--->半角

          全角转半角java实现:

    /**
       * 全角转半角的函数(DBC case)
       * 全角空格为12288,半角空格为32 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
       *
       * @param input 任意字符串
       * @return 半角字符串
       */
      public static String toDbc(String input) {
        if (StringUtils.isBlank(input)) {
          return "";
        }
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
          if (c[i] == 12288) {
            c[i] = (char) 32;
            continue;
          }
          if (c[i] > 65280 && c[i] < 65375) {
            c[i] = (char) (c[i] - 65248);
          }
        }
        return new String(c);
      }

     

    5 测试

    5.1 main测试方法

      public static void main(String[] args) {
        String str = "半角符号示例:,!~    全角符号示例:,!~";
        System.out.println("半角--->全角转换前:" + str);
        String sbcResult = toSbc(str);
        System.out.println("半角--->全角转换后:" + sbcResult);
    
        System.out.println("全角--->半角转换前:" + str);
        String dbcResult = toDbc(str);
        System.out.println("全角--->半角转换后:" + dbcResult);
        //打印出java所有字符
    //    printAllCharacter();
      }

     

    5.2 测试结果

    Tips:如果不想对数字和大小写字母进行全角转换。那么代码里面不要处理就行了!加个if语句判断下~

     

    6 全部代码

    import org.apache.commons.lang3.StringUtils;
    
    public class Main {
    
    
      public static void main(String[] args) {
        String str = "半角符号示例:,!~    全角符号示例:,!~";
        System.out.println("半角--->全角转换前:" + str);
        String sbcResult = toSbc(str);
        System.out.println("半角--->全角转换后:" + sbcResult);
    
        System.out.println("全角--->半角转换前:" + str);
        String dbcResult = toDbc(str);
        System.out.println("全角--->半角转换后:" + dbcResult);
        //打印出java所有字符
    //    printAllCharacter();
      }
    
      /**
       * 半角转全角的函数(SBC case) 
       * 全角空格为12288,半角空格为32,其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
       *
       * @param input 任意字符串
       * @return 全角字符串
       */
      public static String toSbc(String input) {
        if (StringUtils.isBlank(input)) {
          return "";
        }
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
          if (c[i] == 32) {
            c[i] = (char) 12288;
            continue;
          }
          if (c[i] < 127) {
            c[i] = (char) (c[i] + 65248);
          }
        }
        return new String(c);
      }
    
      /**
       * 全角转半角的函数(DBC case) 
       * 全角空格为12288,半角空格为32 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
       *
       * @param input 任意字符串
       * @return 半角字符串
       */
      public static String toDbc(String input) {
        if (StringUtils.isBlank(input)) {
          return "";
        }
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
          if (c[i] == 12288) {
            c[i] = (char) 32;
            continue;
          }
          if (c[i] > 65280 && c[i] < 65375) {
            c[i] = (char) (c[i] - 65248);
          }
        }
        return new String(c);
      }
    
      /**
       * 打印出java中所有Unicode编码的字符
       */
      private static void printAllCharacter() {
        for (int i = Character.MIN_VALUE; i <= Character.MAX_VALUE; ++i) {
          System.out.println(i + "   " + (char) i);
        }
      }
    }

          关注微信公众号,免费获取java及其相关视频教程~

    展开全文
  • asp将全角的字符转变成半角字符,将半角转变成全角d的代码
  • 全角:指一个字符占用两个标准字符位置,而半角:指一字符占用一个标准的字符位置,在日常开发中经常会遇到全角半角转换的要求,下面这篇文章主要给大家介绍了关于java中字符进行全角半角转换的相关资料,文中通过...
  • 全角转半角半角转全角,判断字符是否为全角 全角转半角半角转全角,判断字符是否为全角
  • C++全角半角字符转换

    2013-04-07 11:38:58
    C++全角半角字符转换
  • 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置。全角占两个字节。 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。在全角中,字母和数字等...

    一、关于全角和半角

    1、什么是全角,半角?

    • 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置。全角占两个字节。
      汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。在全角中,字母和数字等与汉字一样占据着等宽的位置。
    • 半角:是指一个字符占用一个标准的字符位置。半角占一个字节。
      半角就是 ASCII 方式的字符,在没有汉字输入法起作用的时候,输入的字母、数字和字符都是半角的。
      提示
      每个半角字符只占用一字节的空间(一字节有8位,共256个编码空间)。汉语、日语、及朝鲜文等象形字语言的字库量远大于256个编码空间,所以改用两个字节来储存。同时,由于中日韩等象形文字的书写习惯,如果统一使用全角字符的话,排列起来也显得整齐。为了排列整齐,英文和其它拉丁文的字符和标点也提供了全角格式。

    2、两者的区别?

    全角和半角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节。不管是半角还是全角,汉字都要占两个字节。
    使用效果如下图
    全角:
    在这里插入图片描述

    半角:
    在这里插入图片描述
    总结

    1.全角情况下输入一个字符就会占用两个字符。

    2.全角输出的字符和半角是不一样的。

    3.半角下的英文字母比较小。

    4.半角是月亮的形状,全角是圆月。

    二、全角和半角的相互转换

    1、半角转换为全角

    	ToDBC(txtstring) {
          var tmp = "";
          for (var i = 0; i < txtstring.length; i++) {
            if (txtstring.charCodeAt(i) == 32) {
              tmp = tmp + String.fromCharCode(12288);
            } else if (txtstring.charCodeAt(i) < 127) {
              tmp = tmp + String.fromCharCode(txtstring.charCodeAt(i) + 65248);
            } else {
              tmp += txtstring[i];
            }
          }
          return tmp;
        },
    

    效果:

    输入:
    输入值:
    结果:
    转换结果:

    2、全角转换为半角

    	toSBC(str) {
          let result = "";
          for (let i = 0; i < str.length; i++) {
            let code = str.charCodeAt(i);//获取当前字符的unicode编码
            if (code >= 65281 && code <= 65373)//在这个unicode编码范围中的是所有的英文字母已经各种字符
            {
              let d = str.charCodeAt(i) - 65248;
              result += String.fromCharCode(d);//把全角字符的unicode编码转换为对应半角字符的unicode码
            } else if (code == 12288)//空格
          {
              let d = str.charCodeAt(i) - 12288 + 32;
              result += String.fromCharCode(d);
            } else {
              result += str.charAt(i);
            }
          }
          console.log(result)
         return result;
        },
    

    效果:

    调用方法:
    在这里插入图片描述
    打印结果:
    在这里插入图片描述

    展开全文
  • 前几天,在做表单验证的时候,发现用户在输入表单内容的时候,正常情况下都是半角输入,但是也有可能是全角输入,所以就牵扯到全角输入内容的验证,这里便提供全角半角之间的转换函数,与大家分享一下: ...

      前几天,在做表单验证的时候,发现用户在输入表单内容的时候,正常情况下都是半角输入,但是也有可能是全角输入,所以就牵扯到全角输入内容的验证,这里便提供全角和半角之间的转换函数,与大家分享一下:

      1、js判断文字是全角还是半角:

    1 str="中文;;a"   
    2 alert(str.match(/[\u0000-\u00ff]/g))   //半角  
    3 alert(str.match(/[\u4e00-\u9fa5]/g))   //中文  
    4 alert(str.match(/[\uff00-\uffff]/g))   //全角

      2、全角与半角之间的相互转换:

        首先,先得明确以下信息:

        a.全角空格为12288,半角空格为32;

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

      半角转换为全角函数:

     1 function ToDBC(txtstring) { 
     2   var tmp = ""; 
     3   for(var i=0;i<txtstring.length;i  { 
     4     if(txtstring.charCodeAt(i)==32){ 
     5       tmp= tmp  String.fromCharCode(12288); 
     6     } 
     7     if(txtstring.charCodeAt(i)<127){ 
     8       tmp=tmp String.fromCharCode(txtstring.charCodeAt(i) 65248); 
     9     } 
    10   } 
    11   return tmp; 
    12 } 

      上面用到了js的charCodeAt() 方法与fromCharCode() 方法。

      charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。

      fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。

      全角转换为半角函数:

     1 function ToCDB(str) { 
     2   var tmp = ""; 
     3   for(var i=0;i<str.length;i  ){ 
     4     if (str.charCodeAt(i) == 12288){
     5       tmp  = String.fromCharCode(str.charCodeAt(i)-12256);
     6       continue;
     7     }
     8     if(str.charCodeAt(i) > 65280 && str.charCodeAt(i) < 65375){ 
     9       tmp  = String.fromCharCode(str.charCodeAt(i)-65248); 
    10     } 
    11     else{ 
    12       tmp  = String.fromCharCode(str.charCodeAt(i)); 
    13     } 
    14   } 
    15   return tmp 
    16 } 

      这便是这次项目的收获,希望可以帮助到有类似需求的朋友。

     


    更多专业前端知识,请上 【猿2048】www.mk2048.com
    展开全文
  • 半角字符转全角 function ToDBC(txtstring) { var tmp = ""; for(var i=0;i<txtstring.length;i++) { if(txtstring.charCodeAt(i)==32) { tmp= tmp+ String.fromCharCode(12288); } else if(txt...
  • 半角字符是指一字符占用一个标准的字符位置,通常的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节 系统中如果没有对非法输入进行处理那么就会有全角和半角的字符,全角和半角的占用字节也不...
  • Python实现全角半角相互转换

    千次阅读 2019-05-20 23:00:26
    全角半角转换在处理汉语语料中会经常出现,这里分别说明汉字、数字、字母的unicode编码范围。以及全角半角的转换方法。最后给出wiki上全角半角的编码对照表。 汉字的判断 汉字的unicode编码范围 u4e00 到 u9fa...
  • 全角字符和半角字符的区别

    千次阅读 2021-02-12 09:27:35
    全角字符的由来# 全角符号是双字节中文编码的历史遗留问题。当年在纯文本的界面中,为了让西文和中日韩的方块字对齐,就让西文字母、数字和标点也占用一个汉字的视觉空间,并使用 2 个字节存储。后来,其中的一些...
  • 全角半角字符相互转换

    千次阅读 2017-05-02 10:00:27
    import org.apache.commons.lang.StringUtils;... * 提供对字符串的全角->半角半角->全角转换 * */ public class BCConvert { /** * ASCII表中可见字符从!开始,偏移位值为33(Decimal) */
  • C#实现字符全角半角转换

    千次阅读 2017-03-31 13:37:13
    #region 全角转换半角以及半角转换为全角  ...///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248  public static string ToSBC( string input)  {   // 半角转全角:   ch
  • * 替换全角半角 * * @param text 文本 * @param notConvertSet 不替换的字符集合 * @return 替换后的字符 */ public static String toDBC(String text, Set<Character> notConvertSet) { char c[] =...
  • 1)全角(Full-width):是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置。全角占两个字节(16位)。 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角...
  • 该扩展名通过在半角全角字符之间插入空格来格式化文档。 例如,文字 今日は2017年8月11日(金),快晴です。 格式如下: 今日は2017年8月11日(金),快晴です。 用法 打开要格式化的文档。 按Ctrl+Shift+I格式...
  • 需求:将全角字符串 " text001" 转换成半角字符串 " text001 " var str = "text001"; var len = str.length var newStr = '' for (var i = 0; i < len; i++) { var code = str.charCodeAt(i) if...
  • VB中半角转全角方法

    2019-09-27 09:39:27
    StrConv(string, conversion, LCID) ...全角转半角:vbNarrow TT=StrConv("abcd123",vbWide) ==>TT="abcd123" 转载于:https://www.cnblogs.com/topcat/archive/2008/06/08/1215925.html...
  • #region 全角转换半角以及半角转换为全角 ///转全角的函数(SBC case) ... ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 public static string ToSBC( string input) {
  • java中全角半角字符的相互转换

    千次阅读 2016-08-18 14:12:04
    import org.apache.commons.lang.StringUtils;... * 提供对字符串的全角->半角半角->全角转换 * </PRE> */ public class BCConvert { /** * ASCII表中可见字符从!开始,偏移位值为33(Decimal) */ static
  • 全角字符转半角字符

    千次阅读 2018-07-09 14:07:38
    全角字符转半角字符  中文中的标点符号一般都是用全角字符表示的,也就是说用了两个英文字符的位置,这和普通汉字是一致的。英文标点则是用的一个字符的位置。有时,需要把一些全角字符(标点,等)转换为英文的半角...
  • 全角字符和半角字符

    千次阅读 2017-10-11 09:29:21
    2017/10/11 工作任务:将其中所有的全角字符按GBK编码计算长度,半角字符不做改动 一.全角字符和半角字符 在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为”半角”,相对地...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,075
精华内容 6,030
关键字:

半角字符转全角