encodeuri转码和解码(为什么要两次调用encodeURI来解决乱码问题)

本文目录
为什么要两次调用encodeURI来解决乱码问题
.encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码.
. UTF-8编码的格式:一个汉字来三个字节构成,每一个字节会转换成16进制的编码,同时添加上%号.
假设页面端输入的中文是一个“中”,按照下面步骤进行解码
1.第一次encodeURI,按照utf-8方式获取字节数组变成 此时已经没有了多字节字符,全部是单字节字符。
2、第二次encodeURI,进行编码,会把%看成一个转义字符,并不编码%以后字符,会把%编码成%25.把数组最后变成发往服务器端,
当应用服务器调用getParameter方法,getParameter方法会去向应用服务器请求参数
应用服务器最初获得的就是发送来的,因为都会把%25解析成%.并把这个值返回给getParameter方法
3\、再用UTF-8解码一次,就得到"中"了。
想想看,如果不编码两次,当服务器自动解码的时候,假如是按照ISO-8859去解码UTF-8编码的东西,就是会出现乱码。
JS:
view plain copy
document.authorityForm.action = basePath3+"User_viewUser.do?id="+id+"&roleName="+encodeURI(encodeURI(roleName))+"&roleType="+roleType;
Java后台:
view plain copy
roleName = java.net.URLDecoder.decode(getRequest().getParameter("roleName"),"UTF-8");
java decodeuri
java decodeuri是什么,让我们一起了解一下。
decodeURI() 是JavaScript的内置函数,用于对encodeURI()函数编码过的URI进行解码,URI是用来标识互联网上的资源和怎样访问这些资源的传输协议的字符串,decodeURI函数操作的是完整的URI。
在JavaScript中,encodeURI和decodeURI 主要用于URL(网址)的编码、解码,是JavaScript的自身函数,采用UTF-8编码格式对指定的字符串进行编码或解码。所以我们要先了解这两个函数的含义是什么?
1、编码函数 encodeURI():将非字母、数字 字符转换成ASCII码,以16进制表示。
2、译码函数 decodeURI():将被encodeURI()编码过的 ASCII码转换成对应的字符。
实战操作:地址解码decodeURI。
//获取完整的 URL var url = window.location.href; //从问号 (?) 开始的 URL(查询部分) var url = window.location.search; //当前 URL 的端口号 var url = window.location.port; //decodeURI()可对 encodeURI()编码过的 URI 进行解码。 //url =decodeURI(decodeURI(location.search)); url =decodeURI(location.search); // decodeURIComponent()可对 encodeURIComponent()编码的 URI 进行解码。 //可以编码和解码URI特殊字符(如#,/,¥等)
拓展一下:另外encodeURIComponent和decodeURIComponent也是主要用于URL(网址)的编码、解码,是JavaScript的自身函数,采用UTF-8编码格式对指定的字符串进行编码或解码。
编码函数 encodeURIComponent():将非字母、数字 字符转换成ASCII码,以16进制表示。
译码函数 decodeURIComponent():将被encodeURIComponent()编码过的 ASCII码转换成对应的字符。
encodeURIComponent和encodeURI的区别
相同点: 1、encodeURIComponent()和enCodeURI()方法都可以对URI进行编码,以便发送给浏览器,因为有效URI不能包含某些字符,例如空格等。通过这两个方法对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字符,从而能够让浏览器识别
不同点:
1、encodeURI()主要用于整个URI,它不会对本身属于URI的特殊字符进行编码例如:
2.encodeURIComponent()可用于编码URI中的参数,encodeURIComponent方法不会对下列字符编码:
3. encodeURIComponent解码的范围更广,encodeURI主要是对空格进行编码
4.encodeURI通过decodeURI进行解码,encodeURLComponent通过decodeURIComponent进行解码

更多文章:
在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)
2026年10月11日 05:20
countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)
2026年10月11日 03:30
正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)
2026年10月11日 03:00
orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)
2026年10月10日 23:00
display的用法(display是什么意思 详解display的含义和用法)
2026年10月10日 22:00
html全部居中代码(怎么让网页居中显示,html如何让网页居中)
2026年10月10日 21:10





