博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于 escape、encodeURI、encodeURIComponent
阅读量:5929 次
发布时间:2019-06-19

本文共 888 字,大约阅读时间需要 2 分钟。

参考资料:

       

 

 

escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。解码:unescape()

encodeURI() 函数可把字符串作为 URI 进行编码。 解码:decodeURI()

encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。解码:decodeURIComponent()

 

共同点:

这三个函数均采用unicode字符集。

 

不同点:

escape是将字符的unicode编码转化为16进制序列(转义序列,),其不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z。

encodeURI是将字符的unicode编码通过UTF-8来表示,其不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z。

encodeURIComponent也是将字符的unicode编码通过UTF-8来表示,其与encodeURI的唯一区别就是它们不编码的字符有所差别,encodeURIComponent不编码的字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z。

 

使用场景

1. 传递参数时(GET方法)需要使用encodeURIComponent,这样组合的URL才不会被#、?、&等特殊字符所干扰。

2. 对URL(URL是一种URI)进行整体编码时使用encodeURI,这样就可以确保URL中的特殊含义字符(#、?、&、etc.)不被编码。

3. ECMAScript v3中反对对escape()的使用,并建议用encodeURI和encodeURIComponent代替,不过escape()依然被广泛的用于cookie的编码,因为escape()恰好编码了cookie中的非法字符并且对路径中常出现的“/”不进行编码。

本文转自挨踢前端博客园博客,原文链接http://www.cnblogs.com/duanhuajian/p/3499697.html如需转载请自行联系原作者

@挨踢前端

你可能感兴趣的文章
centos7.0搭建svn服务器
查看>>
JS多个对象添加到一个对象中
查看>>
九度 1376 最近零子序列
查看>>
yii---where or该如何使用
查看>>
非彼拉且数列的实现
查看>>
高性能缓存服务器Squid架构配置
查看>>
在Hyper-V下安装Windows 8
查看>>
Android:ZoomControls控件
查看>>
xshell 通过ssh连接 ubuntu15_x64
查看>>
mysql 2013错误解决
查看>>
Windows Server 2012 存储去重
查看>>
SQL/LINQ/Lamda 写法[转发]
查看>>
25.3. UUID()
查看>>
Hadoop - Mac OSX下配置和启动hadoop以及常见错误解决
查看>>
UIPassValue页面传值 UI_08(下)
查看>>
[译] 人人都是设计师。我们可以的
查看>>
你应该知道的前端--渲染原理
查看>>
typeof、instanceof、constructor...
查看>>
ES6 数组去重,求交并差集
查看>>
Unity开篇
查看>>