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编码转换

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值