JavaScript 之 url编码函数encodeURI与encodeURIComponent,decodeURI与decodeURIComponent方法

一、作用

全局函数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的特殊字符。

1.encodeURI()和encodeURIComponent()是对字符进行编码。

2.decodeURI()和decodeURIComponent()是对相应编码过的字符进行解码。

三、总结

记住2种特殊字符,第一种,浏览器无法识别的特殊字符,如空格、中文。第二种,属于url的特殊字符,如/、//、# 、&等。
encodeURI方法只把第一种特殊字符转义,而encodeURIComponent方法会把两种特殊字符都转义。如果我们需要把url作为参数传给服务器,是要用encodeURIComponent方法的。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值