java将Unicode编码转换为汉字

java实现unicode编码转换为汉字编码的代码!

package com.amarsoft.court.app.commom;


public class JSStrDecoder {
 
    public static String unescape(String src) {
        StringBuffer tmp = new StringBuffer();
        tmp.ensureCapacity(src.length());
        int lastPos = 0, pos = 0;
        char ch;
        while (lastPos < src.length()) {
            pos = src.indexOf("%", lastPos);
            if (pos == lastPos) {
                if (src.charAt(pos + 1) == 'u') {
                    ch = (char) Integer.parseInt(
                            src.substring(pos + 2, pos + 6), 16);
                    tmp.append(ch);
                    lastPos = pos + 6;
                } else {
                    ch = (char) Integer.parseInt(
                            src.substring(pos + 1, pos + 3), 16);
                    tmp.append(ch);
                    lastPos = pos + 3;
                }
            } else {
                if (pos == -1) {
                    tmp.append(src.substring(lastPos));
                    lastPos = src.length();
                } else {
                    tmp.append(src.substring(lastPos, pos));
                    lastPos = pos;
                }
            }
        }
        return tmp.toString();
    }
    
    public static String paperDecode(String paperString){
    	StringBuffer result = new StringBuffer();
        paperString=unescape(paperString);
        for(int i=paperString.length();i>0;i--){
        	String sTemp =paperString.substring(i-1,i); 
        	result.append(sTemp);
        }
        return result.toString();
    }
    
    public static String unescapeJsArray(String jsArray){
    	StringBuffer result = new StringBuffer();
    	String sStartKey = "tm[0]=";
    	String sEndKey = ";var n=0;";
    	int iSart = jsArray.indexOf(sStartKey);
    	int iEnd = jsArray.indexOf(sEndKey);
    	String sToDecode = jsArray.substring(iSart, iEnd);
    	String[] aToDecode = sToDecode.split(";");
    	for(int i=0;i<aToDecode.length;i++){
    		int iDot = aToDecode[i].indexOf("=");
    		if(iDot<0)iDot=-2;
    		String paperString = aToDecode[i].substring(iDot+2, aToDecode[i].length()-1);
      		paperString = paperString.replaceAll("%u%u", "%u");
    		paperString = paperString.replaceAll("%u%", "u");
    		//	System.out.println("old:" + aToDecode[i]);
    		paperString = paperDecode(paperString);
    		result.append(paperString);
    	//	System.out.println("new:" + paperString);
    	}
    	return result.toString();
    }


	public static void main(String[] args) {
String pages="<tr><td><div class='ws_title'>\u6797\u84C9\u4E0E\u674E\u706B\u7AE0\u5EFA\u8BBE\u5DE5\u7A0B\u5408";
		System.out.println("结果为:"+unescape(pages));
	}

}





unescape
实现字符串unidcode编码的转换

paperDecode

实现数组反转

unescapeJsArray

实现数组unicode编码转换

猜你喜欢

转载自blog.csdn.net/qq_26925867/article/details/52596604