众所周知,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代码分享的全部内容,希望对大家有所帮助。
感谢大家对本站的支持!
本文向大家介绍escape编码与unescape解码汉字出现乱码的解决方法,包括了escape编码与unescape解码汉字出现乱码的解决方法的使用技巧和注意事项,需要的朋友参考一下 今天的项目中遇到需要用javascript的escape编码汉字再用unescape解码的情况,测试代码段的时候出现了乱码的情况。 具体情况如下: 首先,用EditPlus打开测试页面test.html,编辑如下ht
本文向大家介绍纯JS前端实现分页代码,包括了纯JS前端实现分页代码的使用技巧和注意事项,需要的朋友参考一下 先给大家展示下效果图,如果大家感觉效果不错,请参考实现代码: 因为这是我自己第一次动手用js写分页,写的应该也不是很完美,有些公共的没有抽取出来,但是用起来还是可以的,这块代码是可以把它当做公共的分页去处理的,我就是用这块代码写了两个稍微不同一些的分页!公共的代码抽取的也差不多,主要就是aj
本文向大家介绍微信JS-SDK分享功能的.Net实现代码,包括了微信JS-SDK分享功能的.Net实现代码的使用技巧和注意事项,需要的朋友参考一下 JS-SDK接口是什么? 为了方便开发者实现微信内的网页(基于微信浏览器访问的网页)功能,比如拍照、选图、语音、位置等手机系统的能力,并方便开发者直接使用微信分享、扫一扫等微信特有的能力,微信推出了JS-SDK的整体开发包,供开发者方便使用。 分享功能
本文向大家介绍JS代码实现table数据分页效果,包括了JS代码实现table数据分页效果的使用技巧和注意事项,需要的朋友参考一下 第一个:实现的很常见很简单的显示页数翻页 效果图: •这是HTML代码,很简单滴(我好像看到了被嫌弃的小眼神) •下面就是JS代码了 第二个:实现前进页和后退页 效果图: •这是全部代码,用得原生JS,依然还是很简单滴(好像对原生js有种莫名的喜
本文向大家介绍js实现的tab标签切换效果代码分享,包括了js实现的tab标签切换效果代码分享的使用技巧和注意事项,需要的朋友参考一下 这是一款基于js实现的tab标签切换效果,是一款无需jQuery,原生javascript制作的tab切换效果源码。点击上面的标题即可实现对应页面的切换功能,非常具有实用价值。 运行效果图:-------------------查看效果 下载源码---------
本文向大家介绍javascript中实现兼容JAVA的hashCode算法代码分享,包括了javascript中实现兼容JAVA的hashCode算法代码分享的使用技巧和注意事项,需要的朋友参考一下 在java中一个hashCode算法,可以用来计算一个字符串的hash值,今天一个朋友突然问俺能不能在js中计算hashCode,要求和java的hashCode计算结果一样。 对于java的hash