一、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
使用场景: 使用数据时
escape
对0-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