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

java unicode编码转换才成汉字 博客分类: java java 

程序员文章站 2024-03-25 19:00:28
...
package com.bky.controller;


public class Test {

private static String loadConvert (char[] in, int off, int len, char[] convtBuf) { 
        if (convtBuf.length < len) { 
            int newLen = len * 2; 
            if (newLen < 0) { 
            newLen = Integer.MAX_VALUE; 
        }  
        convtBuf = new char[newLen]; 
        } 
        char aChar; 
        char[] out = convtBuf;  
        int outLen = 0; 
        int end = off + len; 
        while (off < end) { 
            aChar = in[off++]; 
            if (aChar == '\\') { 
                aChar = in[off++];    
                if(aChar == 'u') { 
                    int value=0; 
            for (int i=0; i<4; i++) { 
                aChar = in[off++];   
                switch (aChar) { 
                  case '0': case '1': case '2': case '3': case '4': 
                  case '5': case '6': case '7': case '8': case '9': 
                     value = (value << 4) + aChar - '0'; 
                 break; 
              case 'a': case 'b': case 'c': 
                          case 'd': case 'e': case 'f': 
                 value = (value << 4) + 10 + aChar - 'a'; 
                 break; 
              case 'A': case 'B': case 'C': 
                          case 'D': case 'E': case 'F': 
                 value = (value << 4) + 10 + aChar - 'A'; 
                 break; 
              default: 
                              throw new IllegalArgumentException( 
                                           "Malformed \\uxxxx encoding."); 
                        } 
                     } 
                    out[outLen++] = (char)value; 
                } else { 
                    if (aChar == 't') aChar = '\t';  
                    else if (aChar == 'r') aChar = '\r'; 
                    else if (aChar == 'n') aChar = '\n'; 
                    else if (aChar == 'f') aChar = '\f';  
                    out[outLen++] = aChar; 
                } 
            } else { 
            out[outLen++] = (char)aChar; 
            } 
        } 
        return new String (out, 0, outLen); 
    } 

public static void main(String[] args) {
//String str="\u5f00\u53d1\u533a\u5e97";
String str="\u5218\u6d9b";
char[] convtBuf=new char[2]; 
System.out.println(loadConvert(str.toCharArray(),0,str.length(),convtBuf));
}

}
相关标签: java