encodeURI encodeURIComponent 的区别,和使用场景

2022年6月13日08:16:11

encodeURI encodeURIComponent 的区别,和使用场景

一、 ncodeURI encodeURIComponent

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

-encodeURI 是对可以对整个请求地址进行转义

  • encodeURIComponent 只可用于转义单个参数

例子如下:

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

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

二、来看下区别,

encodeURIComponent

encodeURIComponent 是把输入的字符串作为一个整体,就是参数的实体,并不是 URL,所以所有/ 都会被转义,成为单纯的字符串,失去任何域名的语义。
这个方法在处理单个参数时使用,如需要处理title 参数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

三、总结

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

  • 作者:十月ooOO
  • 原文链接:https://kylebing.blog.csdn.net/article/details/110523970
    更新时间:2022年6月13日08:16:11 ,共 962 字。