escape、encodeURI和encodeURIComponent函数的使用区别

escape、encodeURI和encodeURIComponent函数的使用区别
 最后更新于 2024年10月01日 23:00:08

一、encodeURIComponent

使用场景: 传递参数时使用

这种处理后的的url才不会被 # 等特殊字符截断。

<script language="javascript">
document.write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');
</script>

二、 encodeURI

使用场景: 进行url跳转时整体使用

Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

三、 escape

使用场景: 使用数据时

escape0-255 以外的 unicode值 进行编码时输出 %u**** 格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为 encodeURIComponent,它是将中文、韩文等特殊字符转换成 utf-8格式 的url编码,所以如果给后台传递参数需要使用 encodeURIComponent 时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:,+,-,.,/,@,_,0-9,a-z,A-Z encodeURI不编码字符有82个:!,#,$,&,',(,),,+,,,-,.,/,:,;,=,?,@,,~,0-9,a-z,A-Z encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,,~,0-9,a-z,A-Z