欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

unicode的编码解码

程序员文章站 2022-05-08 10:04:19
...

import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


    /**
     * unicode编码
     * @param String str
     * @return String
     */
    public static String encodeUnicode(String string) {
         
        StringBuffer unicode = new StringBuffer();
     
        for (int i = 0; i < string.length(); i++) {
     
            // 取出每一个字符
            char c = string.charAt(i);
     
            // 转换为unicode
            unicode.append("\\u00" + Integer.toHexString(c));
        }
     
        return unicode.toString();
    }

    /**
     * unicode 解码
     * @param String str
     * @return String
     */
     public static String decodeUnicode(String str) {
          Charset set = Charset.forName("UTF-16");
          Pattern p = Pattern.compile("\\\\u([0-9a-fA-F]{4})");
          Matcher m = p.matcher( str );
          int start = 0 ;
          int start2 = 0 ;
          StringBuffer sb = new StringBuffer();
          while( m.find( start ) ) {
           start2 = m.start() ;
           if( start2 > start ){
            String seg = str.substring(start, start2) ;
            sb.append( seg );
           }
           String code = m.group( 1 );
           int i = Integer.valueOf( code , 16 );
           byte[] bb = new byte[ 4 ] ;
           bb[ 0 ] = (byte) ((i >> 8) & 0xFF );
           bb[ 1 ] = (byte) ( i & 0xFF ) ;
           ByteBuffer b = ByteBuffer.wrap(bb);
           sb.append( String.valueOf( set.decode(b) ).trim() );
           start = m.end() ;
          }
          start2 = str.length() ;
          if( start2 > start ){
           String seg = str.substring(start, start2) ;
           sb.append( seg );
          }
          return sb.toString() ;
    }

爬去网页时获取到的时unicode编码过的字符串,用该方法解码即可
需要注意的是  如果需要转码解码的字符串中含有中文,则这两种方法是不适用的。
--------------------- 
作者:NumbIssac 
来源:CSDN 
原文:https://blog.csdn.net/weixin_38453685/article/details/77990645 
版权声明:本文为博主原创文章,转载请附上博文链接!

相关标签: spider