URI 编码解码方法 encodeURI、encodeURIComponent、decodeURI、decodeURIComponent 之间的区别

一、作用:用来编码和解码URI的

        统一资源标识符,或叫做 URI,是用来标识互联网上的资源(例如,网页或文件)和怎样访问这些资源的传输协议(例如,HTTP 或 FTP)的字符串。除了encodeURI、encodeURIComponent、decodeURI、decodeURIComponent四个用来编码和解码 URI 的函数之外 ECMAScript 语言自身不提供任何使用 URL 的支持。

二、URI的组成

        URI是URN和URL的统称,这里我们主要了解一下URL;

        URL中可能由 ":"、 "/"、 ";"、"?"、"{"、"}"、"&"、英文字母、数组、中文字符等组成;而除了英文字母和数字以外,其他的字母都有可能被浏览器自动转码。

        ":"、 "/"、 ";"、"?" 是当作分隔符的保留字符。不能被 encodeURI 和 decodeURI 解析

三、四个方法的区别

encodeURI 和 decodeURI 函数操作的是完整的 URI;这俩函数假定 URI 中的任何保留字符都有特殊意义,所有不会编码它们。

encodeURIComponent 和 decodeURIComponent 函数操作的是组成 URI 的个别组件;这俩函数假定任何保留字符都代表普通文本,所以必须编码它们,所以它们(保留字符)出现在一个完整 URI 的组件里面时不会被解释成保留字符了。

详细文档请查看 ECMAScript标准

实例:

<script type="text/javascript">
      //encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别
         const allUrl = 'index/{a:1,b:2}';
         // const allUrl = 'index/2/参数参数参数1';

         const transcode = encodeURI(allUrl);
         const decode = decodeURI(transcode);
         console.log('===transcode', transcode);        //index/%7Ba:1,b:2%7D
         console.log('===decode', decode);

         console.log('=========================');

         const transcode_02 = encodeURIComponent(allUrl);     //index%2F%7Ba%3A1%2Cb%3A2%7D
         const decode_02 = decodeURIComponent(transcode);
         console.log('===transcode_02', transcode_02);
         console.log('===decode_02', decode_02);

</script>

参考博客:https://www.cnblogs.com/shuiyi/p/5277233.html

 

文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出!

对博客文章的参考,若原文章博主介意,请联系删除!请原谅

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值