众所周知,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代码分享的全部内容,希望对大家有所帮助。

感谢大家对本站的支持!

java unescape_Java实现JS中的escape和UNescape代码分享相关推荐

  1. js中的escape的用法汇总

    js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...

  2. 浅谈JS中的escape,URLEncode与encodeURIComponent

    在JS中,escape,URLEncode与encodeURIComponent都是编码方法,一般用于对URL进行编码 为什么要使用编码方法 网络标准RFC 1738做了硬性规定: "... ...

  3. nuxt.js的核心代码_Nuxt.js中的通用应用程序代码结构

    nuxt.js的核心代码 by Krutie Patel 通过克鲁蒂·帕特尔(Krutie Patel) Nuxt.js中的通用应用程序代码结构 (Universal application code ...

  4. js中动态添加/插入HTML代码块,并通过JQuery动态绑定点击事件

    文章目录 前言 一.场景需求还原 二.代码示例 1.引入JQuery库 2.代码示例 一:HTML中div标签部分 二:HTML中script标签部分 三:JS文件部分 总结 前言 本篇文章中讲的是在 ...

  5. 服务器静态页面分享微信,JS中静态页面如何实现微信分享功能

    JS中静态页面如何实现微信分享功能 发布时间:2021-07-06 11:09:02 来源:亿速云 阅读:65 作者:小新 这篇文章主要介绍了JS中静态页面如何实现微信分享功能,具有一定借鉴价值,感兴 ...

  6. java unescape_java中的escape和unescape

    在js中,可以将url中的中文参数通过escape("中文")函数来将中文转换为unicode编码的字符串,即百分号+u+字母/数字.当服务器端未自动对其进行解码时,我们可以自己编 ...

  7. react性能优化方案_React灵敏且性能卓越的Spray + Akka解决方案,以“在Java和Node.js中发挥并发性和性能”...

    react性能优化方案 在我以前的文章中,我研究了一个虚拟的交易引擎,并将基于Java的阻止解决方案与基于Node.js的非阻止解决方案进行了比较. 在文章的结尾,我写道: 我怀疑随着Node.js的 ...

  8. 反应灵敏且性能卓越的Spray + Akka解决方案,以“在Java和Node.js中发挥并发性和性能”...

    在我以前的文章中,我研究了一个虚拟的交易引擎,并将基于Java的阻止解决方案与基于Node.js的非阻止解决方案进行了比较. 在文章的结尾,我写道: 我怀疑在Node.js近期取得成功之后,越来越多的 ...

  9. java中如何设置浏览器宽度_[Java教程]关于JS中获取浏览器高度和宽度值的多种方法(多浏览器)_星空网...

    关于JS中获取浏览器高度和宽度值的多种方法(多浏览器) 2017-08-07 0 三种浏览器获取值方法 IE中: document.body.clientWidth ==> BODY对象宽度 d ...

最新文章

  1. winform父窗体实现多个子窗体只能显示一个
  2. 属性子集选择的基本启发方法_图网络基本属性
  3. stm32qspi内存映射_STM32F7-discovery QSPI接口使用心得
  4. Open quote is expected for attribute {1} associated with an element type name.
  5. html判断是安卓还是苹果手机,网页能够自己判断是pc端首页还是手机android和苹果。...
  6. 怎么在安卓布局里设置滚动字体_Get新技能|如何在手机上设置文字版拼音?
  7. IOS发送带附件的邮件
  8. 递归处理汉诺塔问题(c++/python)
  9. 【深度学习】cs224n 自然语言处理
  10. win10在哪打开ie浏览器?windows11怎么打开ie浏览器?
  11. iSlide(PPT插件)
  12. 容联云实现手机验证码
  13. Bluecms代码审计
  14. 惊闻女程序员公开举报:摩拜单车前端组 leader 性骚扰下属!
  15. AVL_全选_取消全选_打印_ZMM1035
  16. 奇虎360Java笔试题
  17. 一款适合小白的jmeter入门文档,性能测试工具-jmeter使用教程
  18. javaweb报修系统源码
  19. Google Play开发者账号被封、下架、提审被拒原因分析
  20. VS 2005中文版用户请谨慎使用我提供的Atlas Xml Scripts Intellisense方法

热门文章

  1. 电脑打开计算机 却看不到桌面,电脑提示显示ie浏览器存在电脑上,但是我为什么找不到它的图标?...
  2. Oracle导出表结构和表数据
  3. 如何将收件箱中的发件人批量导入企业云邮通讯录
  4. 20180908考试
  5. linux 查看目录挂载的ip,基于IP-SAN的存储Linux挂载
  6. 大写日期转换成阿拉伯数字的算法
  7. 打破思维定势的几个方法
  8. 智慧烟草解决方案-最新全套文件
  9. 离岸外包二:离岸外包因素及软件度量 Metrics(IT咨询公司第三方)
  10. matlab simulink实现模糊pid对中央空调时延温度控制系统控制