escape()、encodeURI()、encodeURIComponent() 编码解码

  1 escape()、encodeURI()、encodeURIComponent()区别详解
  2
  3 JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。
  4
  5 下面简单介绍一下它们的区别
  6
  7 1 escape()函数
  8
  9 定义和用法
 10 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
 11
 12 语法
 13 escape(string)
 14
 15 参数  描述
 16 string  必需。要被转义或编码的字符串。
 17
 18 返回值
 19 已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。
 20
 21 说明
 22 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ‘ ( ) 。其他所有的字符都会被转义序列替换。
 23
 24
 25
 26
 27 2 encodeURI()函数
 28 定义和用法
 29 encodeURI() 函数可把字符串作为 URI 进行编码。
 30
 31 语法
 32 encodeURI(URIstring)
 33
 34 参数  描述
 35 URIstring  必需。一个字符串,含有 URI 或其他要编码的文本。
 36
 37 返回值
 38 URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
 39
 40 说明
 41 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ‘ ( ) 。
 42
 43 该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
 44
 45
 46
 47
 48 3 encodeURIComponent() 函数
 49
 50 定义和用法
 51 encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。
 52
 53 语法
 54 encodeURIComponent(URIstring)
 55
 56 参数  描述
 57 URIstring  必需。一个字符串,含有 URI 组件或其他要编码的文本。
 58
 59 返回值
 60 URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
 61
 62 说明
 63 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ‘ ( ) 。
 64
 65 其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
 66
 67 提示和注释
 68 提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
 69
 70
 71
 72 4 总结:
 73
 74  通过对三个函数的分析,我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参 数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。
 75
 76
 77
 78 5 示例:
 79
 80 1 escape()
 81
 82 <script type="text/javascript">
 83
 84 document.write(escape("http://www.w3school.com.cn/") + "<br />")
 85
 86 document.write(escape("?!=()#%&"))
 87
 88 </script>输出:
 89
 90 http%3A//www.w3school.com.cn
 91
 92 %3F%21%3D%28%29%23%25%26
 93
 94 2 encodeURI()
 95
 96 <script type="text/javascript">
 97
 98 document.write(encodeURI("http://www.w3school.com.cn/")+ "<br />")
 99
100 document.write(encodeURI("http://www.w3school.com.cn/My first/"))
101
102 document.write(encodeURI(",/?:@&=+$#"))
103
104 </script>输出:
105
106 http://www.w3school.com.cn/
107
108 http://www.w3school.com.cn/My%20first/
109
110 ,/?:@&=+$#
111
112 对整个URL进行编码,而URL的特定标识符不会被转码。
113
114 3 encodeURIComponent()
115
116 例1:
117
118 <script type="text/javascript">
119
120 document.write(encodeURIComponent("http://www.w3school.com.cn/"))
121
122 document.write("<br />")
123
124 document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/"))
125
126 document.write("<br />")
127
128 document.write(encodeURIComponent(",/?:@&=+$#"))
129
130 </script输出:
131
132 http%3A%2F%2Fwww.w3school.com.cn
133 http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F
134 %2C%2F%3F%3A%40%26%3D%2B%24%23
135 例2:<script language="javascript">document.write(‘
136
137 <a href="http://passport.baidu.com/?logout&aid=7&u=‘+encodeURIComponent("http://cang.baidu.com/bruce42")+‘">退出</a>‘);</script>
138
139 对URL中的参数进行编码,因为参数也是一个URL,如果不编码会影响整个URL的跳转。

原文地址:https://www.cnblogs.com/studyshufei/p/8386234.html

时间: 2024-10-13 23:22:39

escape()、encodeURI()、encodeURIComponent() 编码解码的相关文章

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

url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介 2014年10月12日 16806次浏览 引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encodeURI()等等.关于浏览器参数操作,请看文章http://www.haorooms.com/post/js_url_canshu ,今天主要讲讲e

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

引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encodeURI()等等.关于浏览器参数操作,请看文章http://www.haorooms.com/post/js_url_canshu ,今天主要讲讲escape(),encodeURI(),encodeURIComponent()这几个函数的用法和区别. 为啥会有浏览器编码这一说法 一般来说,URL只能

JavaScript中有对字符串编码的三个函数:escape,encodeURI,encodeURIComponent

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent . 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(string) 参数  描述  string  必需.要被转义或编码的字符串. 返回值 已编码的

JavaScript中有三个可以对字符串编码的函数,分别是: escape(),encodeURI(),encodeURIComponent()

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent . 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(string) 参数  描述  string  必需.要被转义或编码的字符串. 返回值 已编码的

escape,encodeURI,encodeURIComponent

JavaScript/js中,有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent . escape()函数 定义和用法 :escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 :escape(string) 参数  描述  :string  必需.要被转义或编码的字符串. 返回值 :已编码的 string 的

js escape, encodeURI, encodeURIComponent

escape,   encodeURI,   encodeURIComponent 1)基本介绍 js 对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent, 相应3个解码函数:decodeURI,decodeURIComponent 2)用途 1.   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断. 例如:"http://www.baidu.com?name="+encodeURICom

escape, encodeURI, encodeURIComponent 的使用情况

escape, encodeURI, encodeURIComponent 的使用情况: 1.js使用数据时可以使用escape: 2.传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断: 3.进行url跳转时可以整体使用encodeURI.例如: Location.href = encodeURI(“http://www.javaweb.cc”): 4.escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下esca

js中的三个编码函数:escape,encodeURI,encodeURIComponent

1. eacape(): 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / .其他所有的字符都会被转义序列替换.其它情况下escape,encodeURI,encodeURIComponent编码结果相同. escape对0-255以外的unicode值进行编码时输出%u****格式 可以使用 unescape() 对 escape() 编码的字符串进行解码. ECMAScript v3 反对使用该方法,应用使用 deco

encodeURI,encodeURIComponent编码

encodeURI().encodeURIComponent().decodeURI().decodeURIComponent() URL编码 Global对象的encodeURI()和encodeURIComponent()方法对URI进行编码,以便发送给浏览器.有效的URI中不能包含某些字符,例如空格.而这两个URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字符,从而让浏览器接受和理解. 其中,encodeURI()主要用于整个URI(例如,http://www