js中两种解码和编码的小区别 en(de)codeURI和de(en)codeURIComponent
2017-05-03 23:25
429 查看
废话不多说直接上代码,各位看官一看便知
var url = "http://baidu.com/detail/login test/ab";
var enCode = encodeURI(url);
var test = decodeURI(enCode);
var test1 = decodeURIComponent(enCode);
var enCodeComponent = encodeURIComponent(url);
var test2 = decodeURI(enCodeComponent);
var test3 = decodeURIComponent(enCodeComponent);
document.write("encode "+enCode+"</br>");
document.write("test decodeURI "+test+"</br>");
document.write("test1 decodeURIComponent "+test1+"</br>");
document.write("enCodeComponent "+enCodeComponent+"</br>");
document.write("test2 decodeURI "+test2+"</br>");
document.write("test3 decodeURIComponent "+test3);
结果:
encode http://baidu.com/detail/login%20test/ab
test decodeURI http://baidu.com/detail/login test/ab
test1 decodeURIComponent http://baidu.com/detail/login test/ab
enCodeComponent http%3A%2F%2Fbaidu.com%2Fdetail%2Flogin%20test%2Fab
test2 decodeURI http%3A%2F%2Fbaidu.com%2Fdetail%2Flogin test%2Fab
test3 decodeURIComponent http://baidu.com/detail/login test/ab
总结: 一般而言 encodeUrl 只对一些特定的字符(具体的尚未完全知道:中文,空格等)会进行编码,所以 decodeURI也只会对encodeURL编码的进行解码
enCodeComponent 编码的范围更加的广包含了encodeUrl 的编码范围,同理decodeURIComponent 也能对enCodeComponent 能够编码的字符进行解码
如果非要说他们四者的关系,用下面的集合图来表示:
以上是自己的所想,存在错误,各位领会其中意思即可。有其它发现的欢迎留言
var url = "http://baidu.com/detail/login test/ab";
var enCode = encodeURI(url);
var test = decodeURI(enCode);
var test1 = decodeURIComponent(enCode);
var enCodeComponent = encodeURIComponent(url);
var test2 = decodeURI(enCodeComponent);
var test3 = decodeURIComponent(enCodeComponent);
document.write("encode "+enCode+"</br>");
document.write("test decodeURI "+test+"</br>");
document.write("test1 decodeURIComponent "+test1+"</br>");
document.write("enCodeComponent "+enCodeComponent+"</br>");
document.write("test2 decodeURI "+test2+"</br>");
document.write("test3 decodeURIComponent "+test3);
结果:
encode http://baidu.com/detail/login%20test/ab
test decodeURI http://baidu.com/detail/login test/ab
test1 decodeURIComponent http://baidu.com/detail/login test/ab
enCodeComponent http%3A%2F%2Fbaidu.com%2Fdetail%2Flogin%20test%2Fab
test2 decodeURI http%3A%2F%2Fbaidu.com%2Fdetail%2Flogin test%2Fab
test3 decodeURIComponent http://baidu.com/detail/login test/ab
总结: 一般而言 encodeUrl 只对一些特定的字符(具体的尚未完全知道:中文,空格等)会进行编码,所以 decodeURI也只会对encodeURL编码的进行解码
enCodeComponent 编码的范围更加的广包含了encodeUrl 的编码范围,同理decodeURIComponent 也能对enCodeComponent 能够编码的字符进行解码
如果非要说他们四者的关系,用下面的集合图来表示:
以上是自己的所想,存在错误,各位领会其中意思即可。有其它发现的欢迎留言
相关文章推荐
- encodeURI与encodeURIComponent方法的区别 如果你使用的get方法提交表单肯定要考虑到输入项目的编码解码问题。 解决这个问题大家一般都使用encodeURI或者en
- 【javascript基础】 JS中编码解码escape、encodeURI、encodeURIComponent区别详解【转】
- JS学习34:en(de)codeURI、en(de)codeURIComponent、(un)escape、btoa(atob)
- JS的 escape、encodeURI 、encodeURIComponent 编码与解码
- javascript:en(de)codeURI、en(de)codeURIComponent、(un)escape、btoa(atob)
- JS中encodeURIComponent(URL)编码与decodeURIComponent(URL)解码详解
- js可以解码utf-8编码,我一直以为decodeURIComponent只能解码16进制呢,原理???
- 一张图看懂encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别 一、这四个方法的用处 1、用来编码和解码URI的 统一资源标识符
- JS编码三种方法的区别:escape、encodeURI和encodeURIComponent
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
- 编码、解码之区别详解:escape()、encodeURI()、encodeURIComponent()
- js中的编码解码--escape/unescape、encodeURI/decodeURI 、encodeURIComponent/decodeURIComponent
- js 编码escape()、encodeURI()、encodeURIComponent()区别详解
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
- JS----编码,解码decodeURIComponent,encodeURIComponent,decodeURI,encodeURI
- %25%37%DD 。。。上述形式不是乱码。 这是urlencoding。 你可以使用js内置的方法 encodeURIComponent进行编码, 而使用decodeURIComponent把上述形式再解码为普通字符
- javascript:en(de)codeURI、en(de)codeURIComponent、(un)escape、btoa(atob)
- js 编码解码 escape,encodeURI,encodeURIComponent
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解