URL编码

JS关于URL编码

url的三个js编码函数escape(),encodeURI(),encodeURIComponent()

问题:

js中url编码&符号后传值给其它页面,多参数网址作为整体编码后传值。(如:http://www.ilcng.com/index.html?id=http://ilcng.com/xmxy/?id1=1&id2=2)这个时候参数id所获得的值并不是 http://ilcng.com/xmxy/?id1=1&id2=2而是http://ilcng.com/xmxy/?id1=1也就是说从&符号的地方截断了,因为&符号是特殊符号不能直接传递,需要经过编码以后才能传递。

结论:

escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如"春节"的返回结果是%u6625%u8282,,escape()不对"+"编码,主要用于汉字编码,现在已经不提倡使用。

encodeURI()是Javascript中真正用来对URL编码的函数。编码整个url地址,但对特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。对应的解码函数是:decodeURI()。

encodeURIComponent()能编码"; / ? : @ & = + $ , #"这些特殊字符。对应的解码函数是decodeURIComponent()。

我想要传递带&符号的网址,所以用encodeURIComponent()。

<script>

document.write(encodeURIComponent("http://www.ilcng.com/?id1=1&id2=2"));

</script>




最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容