关于 escape、encodeURI、encodeURIComponent

简介:

参考资料:http://hi.baidu.com/flondon/item/983b3af35b83fa13ce9f3291

       http://www.w3school.com.cn/js/jsref_escape.asp

 

 

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

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

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

 

共同点:

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

 

不同点:

escape是将字符的unicode编码转化为16进制序列(转义序列,转义序列(escape sequences)),其不编码字符有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如需转载请自行联系原作者


@挨踢前端

相关文章
|
4月前
|
安全 JavaScript 前端开发
escape, encodeURI, encodeURIComponent 有什么区别?
escape, encodeURI, encodeURIComponent 有什么区别?
32 0
|
4月前
都是编码函数escape、encodeURI、encodeURIComponent有啥区别?
都是编码函数escape、encodeURI、encodeURIComponent有啥区别?
|
4月前
|
JavaScript
URL编码中的escape、encodeURI和encodeURIComponent
URL编码中的escape、encodeURI和encodeURIComponent
48 1
|
4月前
|
安全 JavaScript 前端开发
escape, encodeURI, encodeURIComponent 有什么区别以及作用?
escape, encodeURI, encodeURIComponent 有什么区别以及作用?
80 0
|
5月前
|
JavaScript 前端开发
escape()、encodeURI()、encodeURIComponent()区别
escape()、encodeURI()、encodeURIComponent()区别
|
9月前
|
JavaScript 前端开发 安全
《现代Javascript高级教程》JavaScript中的编码方法:escape、encodeURI和encodeURIComponent的深入理解
JavaScript中的编码 在编写JavaScript代码时,我们常常需要处理URLs,这时候理解JavaScript中的escape,encodeURI和encodeURIComponent函数就显得尤为重要。这些函数用于将特殊字符转化为能在URL中安全传输的形式。本文将详细介绍这三个函数的用法和区别,以帮助你更准确的处理URL编码问题。
64 0
encodeURI 和 decodeURI
encodeURI 和 decodeURI
62 0
|
JavaScript 前端开发
javascript中escape()、unescape()、encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()比较
这些URI方法encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()代替了BOM的escape()和unescape()方法。
1451 0
|
PHP
decodeURI 和 escape
使用decodeURI,避免和php接收转换之间出现乱码。
847 0