两次调用encodeURI来解决乱码问题(通过encodeURI解决乱码问题)
来源:互联网 发布:淘宝韩男装店铺推荐 编辑:程序博客网 时间:2024/06/05 10:12
.encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码.
. UTF-8编码的格式:一个汉字来三个字节构成,每一个字节会转换成16进制的编码,同时添加上%号.
假设页面端输入的中文是一个“中”,按照下面步骤进行解码
1.第一次encodeURI,按照utf-8方式获取字节数组变成[-28,-72-83],对字节码数组进行遍历,把每个字节转化成对应的16进制数,这样就变成了[E4,B8,AD],最后变成[%E4,%B8,%AD] 此时已经没有了多字节字符,全部是单字节字符。
2、第二次encodeURI,进行编码,会把%看成一个转义字符,并不编码%以后字符,会把%编码成%25.把数组最后变成[%25E4,%25B8,%25AD]然后就把处理后的数据[%25E4,%25B8,%25AD]发往服务器端,
当应用服务器调用getParameter方法,getParameter方法会去向应用服务器请求参数
应用服务器最初获得的就是发送来的[%25E4,%25B8,%25AD],应用服务器会对这个数据进行URLdecode操作,应用服务器进行解码的这一次,不管是按照UTF-8,还是GBK,还是ISO-8859,,都能得到[%E4,%B8,%AD],因为都会把%25解析成%.并把这个值返回给getParameter方法
3、再用UTF-8解码一次,就得到"中"了。
如果不编码两次,当服务器自动解码的时候,假如是按照ISO-8859去解码UTF-8编码的东西,就是会出现乱码。
Js
- document.authorityForm.action = basePath3+"User_viewUser.do?id="+id+"&roleName="+encodeURI(encodeURI(roleName))+"&roleType="+roleType;
JAVA后台:
roleName = java.net.URLDecoder.decode(getRequest().getParameter("roleName"),"UTF-8");
转载地址:http://blog.csdn.net/howlaa/article/details/12834595
- 两次调用encodeURI来解决乱码问题(通过encodeURI解决乱码问题)
- 两次调用encodeURI来解决乱码问题
- 两次调用encodeURI来解决乱码问题
- 为什么要两次调用encodeURI来解决乱码问题
- [java]两次调用encodeURI来解决乱码问题
- 调用encodeURI来解决乱码问题的原因
- encodeURI解决乱码问题bug
- 资料 05encodeURI来解决URL传中文参数乱码问题(转载)
- encodeURI后台乱码(解决)
- encodeURI乱码问题
- encodeURI乱码问题
- java-encodeURI decodeURI 解决地址传参乱码问题
- java-encodeURI decodeURI 解决地址传参乱码问题
- 解决java.net.URLDecoder.encode与EncodeURI乱码问题
- 中文乱码 encodeURI来解决URL传递时的中文问题
- escape,encodeURI,encodeURIComponent 解决乱码
- encodeURIComponent与encodeURI 解决乱码等。。
- url 参数传递中文乱码问题 即<a href> 利用 js 的 encodeURI解决中文乱码问题
- 权限系统_shiro_身份验证篇
- Windows下搭建Spark
- AS无法连接手机,5037端口总被占用怎么办?
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 系统会随机给你两个日期(yyyy-MM-dd),求出两个日期的具体相差天数
- 两次调用encodeURI来解决乱码问题(通过encodeURI解决乱码问题)
- Retrofit框架设计-构建者+工厂模式高级应用
- Android"挂逼"修炼之行---微信定位聊天记录中照片的位置信息插件开发详解
- Sql server,T-SQL语句,约束,增改删
- idea git更新,本地代码消失,如何恢复?
- git和github的区别
- Cocos2dx-3.x 新建项目
- window service 开发
- msyql读取表字段生成对应的java变量