escape,encodeURI,encodeURIComponent有什么区别?
一、escape
escape
是对字符串进行编码,使得可以在所有的电脑上可读,但是encodeURI
和encodeURIComponent
是对URL
进行编码的。escape
和后两者几乎没关系。
escape
进行编码后,展示的结果类型大致为:%xxxx
或者%uxxxx
。
escape
是不对ascll字母
,数字
,@
,*
,/
,+
进行编码,其余的都会进行编码。
console.log(escape("aaa12@*/+")) //aaa12@*/+
console.log(escape("我是哈哈哈%")) //%u6211%u662F%u54C8%u54C8%u54C8%25
二、encodeURI和encodeURIComponent
encodeURI
和encodeURIComponent
两者都是对URL
进行编码的,但是两者的区别是编码的范围不同。
encodeURI
不能对ascll字符
,数字
,~
,!
,@
,#
,$
,&
,*
,()
,=
,:
,/
,,
,;
,?
,+
,'
进行编码。
encodeURIComponent
不能对ascll字母
,数字
,~
,!
,*
,()
,'
进行编码。
所以说encodeURIComponent
比encodeURI
的编码范围更大。
比如对于https://www.baidu.com
这样一个url
地址,encodeURI
和encodeURIComponent
分别对其进行编码对比如下。
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有什么区别?相关推荐
- url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介
转载地址:http://www.haorooms.com/post/js_escape_encodeURIComponent 引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器ur ...
- url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介【转】
引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encode ...
- js 编码解码 escape,encodeURI,encodeURIComponent
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...
- js 文字转码 escape,encodeURI,encodeURIComponent(marksheng)
js对文字进行转码的3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1. ...
- [转]js escape,encodeURI,encodeURIComponent
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...
- JS中URL中的特殊字符问题:escape,encodeURI,encodeURIComponent(转)
在使用url进行参数传递时,经常会传递一些中文名(或含有特殊字符)的参数或URL地址,在后台处理时会发生转换错误.在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原 ...
- URL转码escape() encodeURI() encodeURIComponent()
转:http://deony2jacob1314.iteye.com/blog/1753068 js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent, ...
- 【定义+用法+区别+使用场景】escape(),encodeURI(),encodeURIComponent()
文章目录 一.escape 二.encodeURI 三.encodeURIComponent 四.encodeURI和encodeURIComponent的不同点 五.使用场合 一.escape es ...
- encodeURI,encodeURIComponent有什么区别?
不同点 它们都是编码URL,唯一区别就是编码的字符范围,其中 encodeURI方法不会对下列字符编码 : ASCII字母 数字 ~!@#$&()=:/,;?+'* encodeURIComp ...
最新文章
- 但并不从包含函数声明的接口派生_C++的虚函数和纯虚函数
- 无人车巨头每天都在做相同的事情:不惜血本做高精地图是为何?
- MongoDB修改删除数据
- python最简单的架构_Python实现简单状态框架的方法
- Atitit.vod 视频播放系统 影吧系统的架构图 架构体系 解决方案
- 游戏 TRAP(SNRS)AlphaBeta版本
- c - 比较字符串的大小
- 菜鸟对新技术的一点看法
- [Nginx] 事件模型
- 二分法查找——C++代码
- pip学习20200810
- 怎么理解本征无序态的蛋白质(Intrinsically disordered proteins)
- echarts世界地图国家及中国城市的经纬度数组整理
- 【MySQL数据库】- 多表查询
- ORACLE 10G DATAGUARD
- 大连理工大学软件学院2022年秋季学期《矩阵与数值分析》上机作业
- LINQ 语句中Take() 和Skip() 总结
- 医疗软件开发解决方案
- 已知顺序表中元素值递增有序。 用算法实现将元素x查到表中适当的位置上,以保持顺序表的有序性。
- SMETA验厂咨询,由于两种模式所需的审核天数不同,总的费用存在差异
热门文章
- 怎么不改变像素改变kb大小?照片尺寸怎么修改?
- 这支研自985药学教授的祛痘神器,刷爆了大学朋友圈
- 衡水东方计算机学校是技校吗,河北衡水技校有哪些 衡水哪个技术学校好
- gpg4win+thunderbird+enigmail实现电子邮件签名与加密
- Python获取本机IP地址的几种方式
- 模拟鼠标键盘html,模拟按键操作神器(鼠标键盘模拟操作助手)V2.0.2.1 正式版
- Data - 数据思维
- Kotlin第4篇 【Kotlin】进阶视频课程-关东升-专题视频课程
- PHP最新B站视频直链解析源码下载+亲测可用
- php中seo优化怎么做,专题页面怎么做SEO优化