博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
encodeURIComponent与URLDecoder.decode用法
阅读量:5285 次
发布时间:2019-06-14

本文共 852 字,大约阅读时间需要 2 分钟。

在输入地址栏时有时一些信息需要在地址栏看不见,我们就需要对其信息在前台转码后台解码

 

js:encodeURIComponent编码与解码

 

今天在js往jsp和servlet传参的时候出现:JavaScript用encodeURIComponentt编码后无法再后台解码的问题。

目前写法:

window.self.location="list.jsp?searchtext="+encodeURIComponent(seartext);

java处理的代码为:

searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");

咋一看觉的没问题,一编一解的,应该可以了。但还是出现了乱码。

 

原因:

原来在对后台java程序里的searchtext赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。所以我们可以在页面上进行两次编码操作,这样后台自动的那次就可以抵消掉一次,然后在使用searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");进行一次解码就好了。

正确的代码:

JavaScript:

window.self.location="list.jsp?searchtext="+encodeURIComponent(encodeURIComponent(seartext));

java:

searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");

另外还有一种方法是JavaScript进行一次编码,后台java处理时换种想法就好了:

java代码:

String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8");

转载于:https://www.cnblogs.com/niuxi/p/5864948.html

你可能感兴趣的文章
imageWithRender(图片的渲染模式)
查看>>
xpath应用
查看>>
从co到koa01-co
查看>>
bzoj 2654: tree
查看>>
Python3 文件操作详解
查看>>
PyTorch学习笔记之DataLoaders
查看>>
LeetCode Length of Last Word
查看>>
解决Flash和html在多标签浏览器中互访问题
查看>>
[LeetCode] First Bad Version
查看>>
Java面向对象编程之异常处理机制
查看>>
虚拟存储管理
查看>>
Loj10222 佳佳的Fibonacci(矩阵乘法)
查看>>
springboot集成quartz实现任务调度
查看>>
剑指offer——重建二叉树
查看>>
二叉树——在二叉树中找到一个节点的前驱节点
查看>>
8.Java语言基础:函数
查看>>
从前端接收时间类型,要在实体类中加上@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")注解...
查看>>
移动cell的位置
查看>>
iTOP-iMX6UL全能板-linux-usb-wifi的使用
查看>>
Django学习---笔记一
查看>>