首页 > 代码库 > encodeURI和encodeURIComponent的区别
encodeURI和encodeURIComponent的区别
这两个函数功能上面比较接近,但是有一些区别。
- encodeURI:不会进行编码的字符有82个 :!,#,$,&,‘,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
- encodeURIComponent:不会进行编码的字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z
从上面的说明中我们可以看出来encodeURIComponent编码更很一些,被编码后的字符都变成%xx这样的16进制形式。
从使用的角度来说:
encodeURI主要用于直接赋值给地址栏时候:
location.href=http://www.mamicode.com/encodeURI("http://huangjacky.com/");
而encodeURIComponent主要用于url的query参数:
location.href="http://huangjacky.com/test.php?a="+encodeURIComponent("我就是我");
大致就是这样了。
这个时候你肯定要说还有个escape函数。
关于escape我要说两点:
- ECMAScript 3中已经不提倡使用这个函数了,所以我们还是少用吧。
- escape不会编码的字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI和encodeURIComponent的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。