| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
EPSLyndon
10年前发布

Java将汉字转换\uxxx方式

import java.util.regex.Matcher;  import java.util.regex.Pattern;  /**   * String and Unicode convert each other.   * @author    yzh.lin   * @since    2012-08-09   *    */  public class UnicodeConverter {        private static final Pattern REG_UNICODE = Pattern.compile("[0-9A-Fa-f]{4}");        private static final Pattern EN_CODE = Pattern.compile("[A-Za-z]{4}");          public static String unicode2String(String str) {            StringBuilder sb = new StringBuilder();            int len = str.length();            for (int i = 0; i < len; i++) {                char c1 = str.charAt(i);                if (c1 == '\\' && i < len - 1) {                    char c2 = str.charAt(++i);                    if (c2 == 'u' && i <= len - 5) {                        String tmp = str.substring(i + 1, i + 5);                        Matcher matcher = REG_UNICODE.matcher(tmp);                        if (matcher.find()) {                            sb.append((char) Integer.parseInt(tmp, 16));                            i = i + 4;                        } else {                            sb.append(c1).append(c2);                        }                    } else {                        sb.append(c1).append(c2);                    }                } else {                    sb.append(c1);                }            }            return sb.toString();        }         /**       * Convert the whole String object.       * @param str       * @return       */      public static String string2Unicode(String str)      {          StringBuilder sb=new StringBuilder();          for(int i=0;i<str.length();i++)          {              String tmpStr = Integer.toHexString(str.charAt(i));              if(tmpStr.length() < 4){                  sb.append("\\u00");              }else{                  sb.append("\\u");              }              sb.append(tmpStr);          }          return sb.toString();      }      /**       * Just convert Chinese String       * @param str       * @return       */      public static String chinese2Unicode(String str){          StringBuilder sb=new StringBuilder();          for(int i=0;i<str.length();i++)          {              String tmpStr = Integer.toHexString(str.charAt(i));                if(tmpStr.length() < 4){                  sb.append(str.charAt(i));              }else{                  sb.append("\\u");                  sb.append(tmpStr);              }          }          return sb.toString();      }    }