-
注:由于decode和encode是相对应的,以下用encode可以更明确的看出差别
encodeURI() 主要用于整个URI,例: http://es.cc/search?title=哇哈哈&tag=默认分类encodeURIComponent() 主要用于对URI中的某一段,例:title=哇哈哈&tag=默认分类
它们的主要区别在于,
encodeURI()不会对本身属于URI的特殊字符进行编码,例: ‘:’ ,'/', '@', '#', '?'等
encodeURIComponent()则会对它发现的任何非标准字符进行编码。
代码如下:
let uri="http://es.cc/search?title=哇哈哈&tag=默认分类";
console.log(encodeURI (uri));
// http://es.cc/search?title=%E5%93%87%E5%93%88%E5%93%88&tag=%E9%BB%98%E8%AE%A4%E5%88%86%E7%B1%BB
console.log(encodeURIComponent (uri));
// http%3A%2F%2Fes.cc%2Fsearch%3Ftitle%3D%E5%93%87%E5%93%88%E5%93%88%26tag%3D%E9%BB%98%E8%AE%A4%E5%88%86%E7%B1%BB
如此就他们的区别就很明显了