url编码函数encodeURI和encodeURIComponent方法

一、作用
全局函数encodeURI和encodeURIComponent方法,都可以用来进行url编码。之所以要对url进行编码,是因为浏览器不能识别某些字符,例如:空格、中文等。这两个方法对这些特殊字符用特殊的UTF-8进行编码,从而使得浏览器可以识别。
二、区别
首先要讲解一下,专属url的特殊字符,这些字符指的是除数字字母以外的字符,例如: // /  &  # 。如果某个url作为参数传给服务器,这时,服务器是无法识别的。这个时候,可以用encodeURIComponent方法对这个url进行编码。
例如,针对以下url:
var url  = "http://www.wrox.com/illegal value.html#start";
encodeURIComponent(url) //"http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.html%23start"
由以上结果可知,encodeURIComponent方法把url的特殊字符以及浏览器无法识别的特殊字符都进行转义了。
这个时候,你或许疑惑了,那么encodeURI方法呢?它则是把浏览器无法识别的特殊字符进行了转义 ,而保留了属于URL的特殊字符。
encodeURI(url)   //"http://www.wrox.com/illegal%20value.html#start"
由以上结果可知,encodeURI只转义了浏览器无法识别的特殊字符,保留了属于url的特殊字符。
三、总结
记住2种特殊字符,一种,浏览器无法识别的特殊字符,如空格、中文。第二种,属于url的特殊字符,如/、//、# 、&等。
encodeURI方法只把第一种特殊字符转义,而encodeURIComponent方法会把两种特殊字符都转义。如果我们需要把url作为参数传给服务器,是要用encodeURIComponent方法的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值