java unicode编码转换才成汉字_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java unicode编码转换才成汉字

java unicode编码转换才成汉字

 2014/11/5 18:18:13  baojunhu99  程序员俱乐部  我要评论(0)
  • 摘要:packagecom.bky.controller;publicclassTest{privatestaticStringloadConvert(char[]in,intoff,intlen,char[]convtBuf){if(convtBuf.length<len){intnewLen=len*2;if(newLen<0){newLen=Integer.MAX_VALUE;}convtBuf=newchar[newLen];}charaChar
  • 标签:Java 编码
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));
}

}
发表评论
用户名: 匿名