一、escape
escape是对字符串进行编码,使得可以在所有的电脑上可读,但是encodeURIencodeURIComponent是对URL进行编码的。escape和后两者几乎没关系。
escape进行编码后,展示的结果类型大致为:%xxxx 或者%uxxxx
escape是不对ascll字母数字@*/+进行编码,其余的都会进行编码。

console.log(escape("aaa12@*/+"))  //aaa12@*/+
console.log(escape("我是哈哈哈%"))  //%u6211%u662F%u54C8%u54C8%u54C8%25

二、encodeURI和encodeURIComponent
encodeURIencodeURIComponent两者都是对URL进行编码的,但是两者的区别是编码的范围不同。
encodeURI不能对ascll字符数字~!@#$&*()=:/,;?+'进行编码。
encodeURIComponent不能对ascll字母数字~!*()'进行编码。
所以说encodeURIComponentencodeURI的编码范围更大。
比如对于https://www.baidu.com这样一个url地址,encodeURIencodeURIComponent分别对其进行编码对比如下。

console.log(encodeURI("https://www.baidu.com"))   //https://www.baidu.com
console.log(encodeURIComponent("https://www.baidu.com"))  //https%3A%2F%2Fwww.baidu.com

三、场合使用
1、如果只是编码字符串,没有url的事,此时使用escape
2、如果你需要编码整个url,此时应该使用encodeURI

console.log(encodeURI("https://www.baidu.com"))   //https://www.baidu.com
console.log(encodeURIComponent("https://www.baidu.com"))  //https%3A%2F%2Fwww.baidu.com

如上述代码所示,如果此时我们使用encodeURIComponent,则连 / 都会进行编码,导致整个URL没有办法使用。
3、如果你需要编码参数时,可以使用encodeURIComponent

如上图所示,如果我们使用encodeURI一定会出问题,因为后面还存在/,并且encodeURI无法进行编码,此时encodeURIComponent可以对/进行编码。

本片博客参考:escape, encodeURI,encodeURIComponent

escape,encodeURI,encodeURIComponent有什么区别?相关推荐

  1. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

    转载地址:http://www.haorooms.com/post/js_escape_encodeURIComponent 引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器ur ...

  2. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介【转】

    引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encode ...

  3. js 编码解码 escape,encodeURI,encodeURIComponent

    js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...

  4. js 文字转码 escape,encodeURI,encodeURIComponent(marksheng)

    js对文字进行转码的3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1. ...

  5. [转]js escape,encodeURI,encodeURIComponent

    js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...

  6. JS中URL中的特殊字符问题:escape,encodeURI,encodeURIComponent(转)

    在使用url进行参数传递时,经常会传递一些中文名(或含有特殊字符)的参数或URL地址,在后台处理时会发生转换错误.在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原 ...

  7. URL转码escape() encodeURI() encodeURIComponent()

    转:http://deony2jacob1314.iteye.com/blog/1753068 js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent, ...

  8. 【定义+用法+区别+使用场景】escape(),encodeURI(),encodeURIComponent()

    文章目录 一.escape 二.encodeURI 三.encodeURIComponent 四.encodeURI和encodeURIComponent的不同点 五.使用场合 一.escape es ...

  9. encodeURI,encodeURIComponent有什么区别?

    不同点 它们都是编码URL,唯一区别就是编码的字符范围,其中 encodeURI方法不会对下列字符编码 : ASCII字母 数字 ~!@#$&()=:/,;?+'* encodeURIComp ...

最新文章

  1. 但并不从包含函数声明的接口派生_C++的虚函数和纯虚函数
  2. 无人车巨头每天都在做相同的事情:不惜血本做高精地图是为何?
  3. MongoDB修改删除数据
  4. python最简单的架构_Python实现简单状态框架的方法
  5. Atitit.vod 视频播放系统 影吧系统的架构图 架构体系 解决方案
  6. 游戏 TRAP(SNRS)AlphaBeta版本
  7. c - 比较字符串的大小
  8. 菜鸟对新技术的一点看法
  9. [Nginx] 事件模型
  10. 二分法查找——C++代码
  11. pip学习20200810
  12. 怎么理解本征无序态的蛋白质(Intrinsically disordered proteins)
  13. echarts世界地图国家及中国城市的经纬度数组整理
  14. 【MySQL数据库】- 多表查询
  15. ORACLE 10G DATAGUARD
  16. 大连理工大学软件学院2022年秋季学期《矩阵与数值分析》上机作业
  17. LINQ 语句中Take() 和Skip() 总结
  18. 医疗软件开发解决方案
  19. 已知顺序表中元素值递增有序。 用算法实现将元素x查到表中适当的位置上,以保持顺序表的有序性。
  20. SMETA验厂咨询,由于两种模式所需的审核天数不同,总的费用存在差异

热门文章

  1. 怎么不改变像素改变kb大小?照片尺寸怎么修改?
  2. 这支研自985药学教授的祛痘神器,刷爆了大学朋友圈
  3. 衡水东方计算机学校是技校吗,河北衡水技校有哪些 衡水哪个技术学校好
  4. gpg4win+thunderbird+enigmail实现电子邮件签名与加密
  5. Python获取本机IP地址的几种方式
  6. 模拟鼠标键盘html,模拟按键操作神器(鼠标键盘模拟操作助手)V2.0.2.1 正式版
  7. Data - 数据思维
  8. Kotlin第4篇 【Kotlin】进阶视频课程-关东升-专题视频课程
  9. PHP最新B站视频直链解析源码下载+亲测可用
  10. php中seo优化怎么做,专题页面怎么做SEO优化