首页 > 开发 > Java > 正文

Java实现JS中的escape和UNescape代码分享

2024-07-13 10:11:55
字体:
来源:转载
供稿:网友

众所周知,JavaScript中escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。下面,我们就来看看 Java语言中类似JavaScript中的escape() 和unescape() 转码方法,具体代码如下:

public class EscapeUnescape {	public static String escape(String src) {		int i;		char j;		StringBuffer tmp = new StringBuffer();		tmp.ensureCapacity(src.length() * 6);		for (i = 0; i < src.length(); i++) {			j = src.charAt(i);			if (Character.isDigit(j) || Character.isLowerCase(j)					|| Character.isUpperCase(j))				tmp.append(j);			else if (j < 256) {				tmp.append("%");				if (j < 16)					tmp.append("0");				tmp.append(Integer.toString(j, 16));			} else {				tmp.append("%u");				tmp.append(Integer.toString(j, 16));			}		}		return tmp.toString();	}	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();	}	/** 	 * @disc 对字符串重新编码 	 * @param src 	 * @return  	 */	public static String isoToGB(String src) {		String strRet = null;		try {			strRet = new String(src.getBytes("ISO_8859_1"), "GB2312");		} catch (Exception e) {		}		return strRet;	}	/** 	 * @disc 对字符串重新编码 	 * @param src 	 * @return  	 */	public static String isoToUTF(String src) {		String strRet = null;		try {			strRet = new String(src.getBytes("ISO_8859_1"), "UTF-8");		} catch (Exception e) {		}		return strRet;	}	public static void main(String[] args) {		String tmp = "中文";		System.out.println("testing escape : " + tmp);		tmp = escape(tmp);		System.out.println(tmp);		System.out.println("testing unescape :" + tmp);		System.out.println(unescape("%u6211%u4eec"));		System.out.println(isoToUTF(tmp));	}}

输出结果为:

testing escape : 中文%u4e2d%u6587testing unescape :%u4e2d%u6587我们%u4e2d%u6587

总结

以上就是本文对于Java实现JS中的escape和UNescape代码分享的全部内容,希望对大家有所帮助。

感谢大家对本站的支持!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表