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

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"));

}

当通过js使用escape()函数来转码url中的中文时,如果服务器端接受不到该中文参数,就改用encodeURI()函数来代替escape()函数。

java unescape_java中的escape和unescape相关推荐

  1. java unescape_Java实现JS中的escape和UNescape代码分享

    众所周知,JavaScript中escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串.下面,我们就来看看 Java语言中类似JavaScript中的escape() 和un ...

  2. .net里面实现javascript中的 escape 和 unescape 功能

    javascript 脚本,有个 escape 和 unescape ,在做URL传递等的情况下, 用的比较多 到了.NET里面, 在 C# 和 VB.NET 下, 仍然有很多人想使用这种功能, 但是 ...

  3. php js unescape,PHP实现JS中escape与unescape的方法

    本文实例讲述了PHP实现JS中escape与unescape的方法.分享给大家供大家参考,具体如下: JavaScript中的escape和unescape是吧字符串转换为unicode十六进制编码, ...

  4. Java中的escape,unescape方法

    来源链接: https://blog.csdn.net/hujingn/article/details/5791130 // //Java中的escape,unescape方法 package my. ...

  5. 在VB6.0中怎么实现escape和unescape

    两套方案,一是调用JAVAscript对象,二是自己写代码编码与解码,代码在CSDN中的以下帖子里贴出: 方案一代码: 复制内容到剪贴板 程序代码 Function Escape(ByVal pstr ...

  6. Python中escape和unescape

    Python中escape和unescape Python处理HTML转义字符 在抓网页数据经常遇到例如>或者 这种HTML转义符,抓到字符串里很是烦人. 比方说一个从网页中抓到的字符串 p = ...

  7. js escape、 unescape、 encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别

    js 1.5版本之后escape. unescape(已弃用)尽量不推荐使用 1.作用 escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读 2. en ...

  8. js中的escape的用法汇总

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

  9. Java虚拟机-逃逸分析(Escape Analysis)和栈上分配

    我们都知道Java中的对象默认都是分配到堆上,在调用栈中,只保存了对象的指针.当对象不再使用后,需要依靠GC来遍历引用树并回收内存.如果堆中对象数量太多,回收对象还有整理内存,都会会带来时间上的消耗, ...

最新文章

  1. 贷款利率最高多少合法?
  2. html 空格_HTML标签
  3. 秒杀场景_解决秒杀超卖问题_04
  4. 祝贺Terrylee博客园Post达到100篇
  5. 数据写入磁盘的过程,咔咔的!
  6. ajax jsonp post php,※ajax的post方式注意点※及jsonp的封装
  7. python爬虫的具体流程_[专栏作家]【Python】爬虫程序 (一)
  8. 中心/设置地图缩放以覆盖所有可见的标记?
  9. python_统计数组中指定范围的数据占的比例
  10. talentcentral测评结果_人才测评
  11. 制图综合:河流水系提取简化
  12. Android 项目必备(二十)-->NFC 的基本使用
  13. java判断session中是否存在_java中session用法 判断用户是否登录
  14. 【原创】基于SpringBoot的同城生鲜门店配送系统(SpringBoot配送系统毕业设计)
  15. 学习游戏建模最好的意见|让你们少走弯路的最佳方法哦!值得过目
  16. fatal: does not appear to a git repository
  17. 电商平台如何实现财务分账?
  18. 1838.最高频元素的频数
  19. 深大计算机与软件学院院长,深圳大学计算机与软件学院自考办
  20. 分布式锁和分布式事务和分布式Session

热门文章

  1. 主编编辑器如何快速找回未及时保存的文章
  2. linux下u盘网卡驱动,通过u盘给linux安装网卡驱动的做法——深圳培训linux
  3. 利尔达客思之“智能照明”的本质解析
  4. CRC16-XMODEM 计算方法 | C语言实现
  5. 保研复习——线性代数4:向量空间
  6. java 微博客户端,Java新浪微博客户端开发第二步
  7. PNP : TCP relay Socks4a
  8. 邮箱里的服务器备份是什么,邮件归档和邮件备份,两者有什么区别?
  9. Unity3D 控制动画播放暂停
  10. 销售王家装预算报价软件 v2006.12.15 bt