java unescape_Java实现JS中的escape和UNescape代码分享
众所周知,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代码分享相关推荐
- js中的escape的用法汇总
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...
- 浅谈JS中的escape,URLEncode与encodeURIComponent
在JS中,escape,URLEncode与encodeURIComponent都是编码方法,一般用于对URL进行编码 为什么要使用编码方法 网络标准RFC 1738做了硬性规定: "... ...
- nuxt.js的核心代码_Nuxt.js中的通用应用程序代码结构
nuxt.js的核心代码 by Krutie Patel 通过克鲁蒂·帕特尔(Krutie Patel) Nuxt.js中的通用应用程序代码结构 (Universal application code ...
- js中动态添加/插入HTML代码块,并通过JQuery动态绑定点击事件
文章目录 前言 一.场景需求还原 二.代码示例 1.引入JQuery库 2.代码示例 一:HTML中div标签部分 二:HTML中script标签部分 三:JS文件部分 总结 前言 本篇文章中讲的是在 ...
- 服务器静态页面分享微信,JS中静态页面如何实现微信分享功能
JS中静态页面如何实现微信分享功能 发布时间:2021-07-06 11:09:02 来源:亿速云 阅读:65 作者:小新 这篇文章主要介绍了JS中静态页面如何实现微信分享功能,具有一定借鉴价值,感兴 ...
- java unescape_java中的escape和unescape
在js中,可以将url中的中文参数通过escape("中文")函数来将中文转换为unicode编码的字符串,即百分号+u+字母/数字.当服务器端未自动对其进行解码时,我们可以自己编 ...
- react性能优化方案_React灵敏且性能卓越的Spray + Akka解决方案,以“在Java和Node.js中发挥并发性和性能”...
react性能优化方案 在我以前的文章中,我研究了一个虚拟的交易引擎,并将基于Java的阻止解决方案与基于Node.js的非阻止解决方案进行了比较. 在文章的结尾,我写道: 我怀疑随着Node.js的 ...
- 反应灵敏且性能卓越的Spray + Akka解决方案,以“在Java和Node.js中发挥并发性和性能”...
在我以前的文章中,我研究了一个虚拟的交易引擎,并将基于Java的阻止解决方案与基于Node.js的非阻止解决方案进行了比较. 在文章的结尾,我写道: 我怀疑在Node.js近期取得成功之后,越来越多的 ...
- java中如何设置浏览器宽度_[Java教程]关于JS中获取浏览器高度和宽度值的多种方法(多浏览器)_星空网...
关于JS中获取浏览器高度和宽度值的多种方法(多浏览器) 2017-08-07 0 三种浏览器获取值方法 IE中: document.body.clientWidth ==> BODY对象宽度 d ...
最新文章
- winform父窗体实现多个子窗体只能显示一个
- 属性子集选择的基本启发方法_图网络基本属性
- stm32qspi内存映射_STM32F7-discovery QSPI接口使用心得
- Open quote is expected for attribute {1} associated with an element type name.
- html判断是安卓还是苹果手机,网页能够自己判断是pc端首页还是手机android和苹果。...
- 怎么在安卓布局里设置滚动字体_Get新技能|如何在手机上设置文字版拼音?
- IOS发送带附件的邮件
- 递归处理汉诺塔问题(c++/python)
- 【深度学习】cs224n 自然语言处理
- win10在哪打开ie浏览器?windows11怎么打开ie浏览器?
- iSlide(PPT插件)
- 容联云实现手机验证码
- Bluecms代码审计
- 惊闻女程序员公开举报:摩拜单车前端组 leader 性骚扰下属!
- AVL_全选_取消全选_打印_ZMM1035
- 奇虎360Java笔试题
- 一款适合小白的jmeter入门文档,性能测试工具-jmeter使用教程
- javaweb报修系统源码
- Google Play开发者账号被封、下架、提审被拒原因分析
- VS 2005中文版用户请谨慎使用我提供的Atlas Xml Scripts Intellisense方法