javascript - encodeURI和encodeURIComponent的区别
javascript - encodeURI和encodeURIComponent的区别
huangjacky 发表于3年前
javascript - encodeURI和encodeURIComponent的区别
  • 发表于 3年前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

这两个函数功能上面比较接近,但是有一些区别。

  • encodeURI:不会进行编码的字符有82个 :!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
  • encodeURIComponent:不会进行编码的字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

从上面的说明中我们可以看出来encodeURIComponent编码更很一些,被编码后的字符都变成%xx这样的16进制形式。

image

从使用的角度来说:

encodeURI主要用于直接赋值给地址栏时候: 

location.href=encodeURI("http://huangjacky.com/");

而encodeURIComponent主要用于url的query参数:

location.href="http://huangjacky.com/test.php?a="+encodeURIComponent("我就是我");

大致就是这样了。

这个时候你肯定要说还有个escape函数。

关于escape我要说两点:

  1. ECMAScript 3中已经不提倡使用这个函数了,所以我们还是少用吧。
  2. escape不会编码的字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
共有 人打赏支持
粉丝 6
博文 19
码字总数 0
×
huangjacky
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: