您的位置:首页 > Web前端 > JavaScript

url编码函数encodeURI和encodeURIComponent方法

2017-10-19 20:28 429 查看
一、作用

全局函数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方法的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息