Java实现JS中的escape和UNescape代码分享
程序员文章站
2024-02-27 19:21:45
众所周知,javascript中escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。下面,我们就来看看 java语言中类似javascript...
众所周知,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%u6587 testing unescape :%u4e2d%u6587 我们 %u4e2d%u6587
总结
以上就是本文对于java实现js中的escape和unescape代码分享的全部内容,希望对大家有所帮助。
感谢大家对本站的支持!
上一篇: DS查找——折半查找求平方根
推荐阅读
-
Java实现JS中的escape和UNescape代码分享
-
PHP实现JS中escape与unescape的方法
-
php实现javascript中的escape和unescape函数
-
求PHP实现javascript escape和unescape方法的代码
-
求PHP实现javascript escape和unescape方法的代码
-
PHP实现Javascript中的escape及unescape函数代码分享
-
PHP实现Javascript中的escape及unescape函数代码分享,escapeunescape
-
如何在java程序中运行js的代码分享
-
JS中实现浅拷贝和深拷贝的代码详解
-
PHP实现Javascript中的escape及unescape函数代码分享