0
点赞
收藏
分享

微信扫一扫

encodeURI encodeURIComponent 的区别,和使用场景

encodeURI encodeURIComponent 的区别,和使用场景

一、 ncodeURI 和 encodeURIComponent

之前一直不了解这两个的区别,现在知道了:

  • ​encodeURI​​ 是对可以对整个请求地址进行转义
  • ​encodeURIComponent​​ 只可用于转义单个参数

例子如下:

比如有这样一个地址需要转义并通过 js 请求,里面的一些符号需要转义成对应的 URL 形式,比如一些标点 ​​,​​ 汉字等都需要转义成域名地址那种

let str = '../../course/exportStatisticsUserByCourse?courseId=12&regionId=2,52,2596,2597,2609&title=体育-北京-统计报表';

二、来看下两者的区别

encodeURIComponent

​encodeURIComponent​​​ 是把输入的字符串作为一个整体,所以所有​​/​​ 都会被转义,成为单纯的字符串,失去任何域名的语义。

encodeURIComponent(str);
// 结果是这样的
// ..%2F..%2Fcourse%2FexportStatisticsUserByCourse%3FcourseId%3D12%26regionId%3D2%2C52%2C2596%2C2597%2C2609%26title%3D%E4%BD%93%E8%82%B2-%E5%8C%97%E4%BA%AC-%E7%BB%9F%E8%AE%A1%E6%8A%A5%E8%A1%A8

而 ​​encodeURI​​ 会保留其URL的原本语义,只处理参数中需要处理的

encodeURI

encodeURI(str);
// 结果是这样的
// ../../course/exportStatisticsUserByCourse?courseId=12&regionId=2,52,2596,2597,2609&title=%E4%BD%93%E8%82%B2-%E5%8C%97%E4%BA%AC-%E7%BB%9F%E8%AE%A1%E6%8A%A5%E8%A1%A8

三、总结

这两个都是用于处理域名地址的,根据自己需要使用即可。


举报

相关推荐

0 条评论