js中字符串编码函数escape美高梅网址,深入分析
分类:计算机网络

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape, decodeURI, decodeURIComponent 。

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。

深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例,encodeuricomponent

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape, decodeURI, decodeURIComponent 。

下面简单介绍一下它们的区别:

1 escape()函数

定义和用法

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

语法

escape(string)

参数  描述

string  必需。要被转义或编码的字符串。

返回值

已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。

说明

该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。

2 encodeURI()函数

定义和用法

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

语法

encodeURI(URIstring)

参数  描述

URIstring  必需。一个字符串,含有 URI 或其他要编码的文本。

返回值

URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

说明

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

3 encodeURIComponent() 函数

定义和用法

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

语法

encodeURIComponent(URIstring)

参数  描述

URIstring  必需。一个字符串,含有 URI 组件或其他要编码的文本。

返回值

URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

说明

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

提示和注释

提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

4 总结:

通过对三个函数的分析,我们可以知道:escape()除了 ASCII字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI()用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。

5 示例:

1 escape()

<script type="text/javascript">
document.write(escape("http://www.w3school.com.cn/") + "<br />")
document.write(escape("?!=()#%&"))
</script>

输出:

http%3A//www.w3school.com.cn

%3F%21%3D%28%29%23%25%26

2 encodeURI()

<script type="text/javascript">
document.write(encodeURI("http://www.w3school.com.cn/")+ "<br />")
document.write(encodeURI("http://www.w3school.com.cn/My first/"))
document.write(encodeURI(",/?:@&=+$#"))
</script>

输出:

http://www.w3school.com.cn/

http://www.w3school.com.cn/My%20first/

,/?:@&=+$#

对整个URL进行编码,而URL的特定标识符不会被转码。

3 encodeURIComponent()

例1:

<script type="text/javascript">
document.write(encodeURIComponent("http://www.w3school.com.cn/"))
document.write("<br />")
document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/"))
document.write("<br />")
document.write(encodeURIComponent(",/?:@&=+$#"))
</script>

输出:

http%3A%2F%2Fwww.w3school.com.cn

http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F

%2C%2F%3F%3A%40%26%3D%2B%24%23

例2:

<script language="javascript">document.write('
<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent(" rel="external nofollow" http://cang.baidu.com/bruce42")+'">退出</a>');</script>

对URL中的参数进行编码,因为参数也是一个URL,如果不编码会影响整个URL的跳转。

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

下面简单介绍一下它们的区别:

下面简单介绍一下它们的区别

javascript中encodeURI与escape函数有与不同?

escape是编码字符串用的,不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI是编码URI用的,不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z  

unescape,decodeURI,decodeURIComponent 。

1 escape()函数

1 escape()函数

javascript cookie 用escape转义好还是用encodeURIComponent转义好

你要做什么
escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。返回已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。
提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。
注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。

encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。返回URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
参考资料:www.w3school.com.cn  

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encod...

下面简单介绍一下它们的区别

定义和用法

定义和用法 
escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

1 escape()函数

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

语法 
escape(string)

定义和用法

语法

参数  描述  
string  必需。要被转义或编码的字符串。 

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

escape(string)

返回值 
已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。

语法

参数  描述

说明 
该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。

escape(string)

string  必需。要被转义或编码的字符串。

 

参数 描述

返回值

2 encodeURI()函数 **
**定义和用法 
encodeURI() 函数可把字符串作为 URI 进行编码。

string 必需。要被转义或编码的字符串。

已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。

语法 
encodeURI(URIstring)

返回值

说明

参数  描述  
URIstring  必需。一个字符串,含有 URI 或其他要编码的文本。 

已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。

该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。

返回值 
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

说明

2 encodeURI()函数

说明 
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: -_ . *

定义和用法

该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

其他所有的字符都会被转义序列替换。

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

 

2 encodeURI()函数

语法

3 encodeURIComponent() 函数

定义和用法

encodeURI(URIstring)

定义和用法 
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。

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

参数  描述

语法 
encodeURIComponent(URIstring)

语法

URIstring  必需。一个字符串,含有 URI 或其他要编码的文本。

参数  描述  
URIstring  必需。一个字符串,含有 URI 组件或其他要编码的文本。 

encodeURI(URIstring)

返回值

返回值 
URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

参数 描述

URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

说明 
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

URIstring 必需。一个字符串,含有 URI 或其他要编码的文本。

说明

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

返回值

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

提示和注释 
提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

 

说明

3 encodeURIComponent() 函数

4 总结:

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

定义和用法

 通过对三个函数的分析,我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。

该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

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

而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。

3 encodeURIComponent() 函数

语法

encodeURIComponent方法在编码单个URIComponent(指请求参 数)应当是最常用的,它可以将参数中的中文、特殊字符进行转义,而不会影响整个URL。

定义和用法

encodeURIComponent(URIstring)

 

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

参数  描述

5 示例:

语法

URIstring  必需。一个字符串,含有 URI 组件或其他要编码的文本。

1 escape()

encodeURIComponent(URIstring)

返回值

<script type="text/javascript">

document.write(escape("http://www.w3school.com.cn/") + "<br />")

document.write(escape("?!=()#%&"))

</script>

输出:

http%3A//www.w3school.com.cn

%3F%21%3D%28%29%23%25%26

参数 描述

URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

 

URIstring 必需。一个字符串,含有 URI 组件或其他要编码的文本。

说明

2 encodeURI()

返回值

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

<script type="text/javascript">

document.write(encodeURI("http://www.w3school.com.cn/")+ "<br />")

document.write(encodeURI("http://www.w3school.com.cn/My first/"))

document.write(encodeURI(",/?:@&=+$#"))

</script>

输出:

http://www.w3school.com.cn/

http://www.w3school.com.cn/My%20first/

总结:对整个URL进行编码,而URL的特定标识符(比如,/?:@&=+$#)不会被转码。

URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

 

说明

提示和注释

3 encodeURIComponent()

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

例1:

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

4 总结:

<script type="text/javascript">

document.write(encodeURIComponent("http://www.w3school.com.cn/"))

document.write("<br />")

document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/"))

document.write("<br />")

document.write(encodeURIComponent(",/?:@&=+$#"))

</script输出:

http%3A%2F%2Fwww.w3school.com.cn 
http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F 
%2C%2F%3F%3A%40%26%3D%2B%24%23

提示和注释

通过对三个函数的分析,我们可以知道:escape()除了 ASCII字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI()用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。

 

提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。

5 示例:

例2:

4 总结:

1 escape()

<script language="javascript">

  document.write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');

</script>

通过对三个函数的分析,我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。

<script type="text/javascript">
document.write(escape("http://www.w3school.com.cn/") + "<br />")
document.write(escape("?!=()#%&"))
</script>

对URL中的参数进行编码,因为参数也是一个URL,如果不编码会影响整个URL的跳转。

5 示例:

输出:

1 escape()

http%3A//www.w3school.com.cn

%3F%21%3D%28%29%23%25%26
<script type="text/javascript">
document.write(escape("http://www.w3school.com.cn/") + "<br />")
document.write(escape("?!=()#%&"))
</script>输出:
http%3A//www.w3school.com.cn
%3F%21%3D%28%29%23%25%26

2 encodeURI()

2 encodeURI()

<script type="text/javascript">
document.write(encodeURI("http://www.w3school.com.cn/")+ "<br />")
document.write(encodeURI("http://www.w3school.com.cn/My first/"))
document.write(encodeURI(",/?:@&=+$#"))
</script>
<script type="text/javascript">
document.write(encodeURI("http://www.w3school.com.cn/")+ "<br />")
document.write(encodeURI("http://www.w3school.com.cn/My first/"))
document.write(encodeURI(",/?:@&=+$#"))
</script>输出:
http://www.w3school.com.cn/
http://www.w3school.com.cn/My%20first/
,/?:@&=+$#

输出:

对整个URL进行编码,而URL的特定标识符不会被转码。

http://www.w3school.com.cn/

http://www.w3school.com.cn/My%20first/

,/?:@&=+$#

3 encodeURIComponent()

对整个URL进行编码,而URL的特定标识符不会被转码。

例1:

3 encodeURIComponent()

<script type="text/javascript">
document.write(encodeURIComponent("http://www.w3school.com.cn/"))
document.write("<br />")
document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/"))
document.write("<br />")
document.write(encodeURIComponent(",/?:@&=+$#"))
</script输出:
http%3A%2F%2Fwww.w3school.com.cn
http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F
%2C%2F%3F%3A%40%26%3D%2B%24%23

例1:

例2:

<script type="text/javascript">
document.write(encodeURIComponent("http://www.w3school.com.cn/"))
document.write("<br />")
document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/"))
document.write("<br />")
document.write(encodeURIComponent(",/?:@&=+$#"))
</script>
<script language="javascript">document.write('
<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>

输出:

对URL中的参数进行编码,因为参数也是一个URL,如果不编码会影响整个URL的跳转。

http%3A%2F%2Fwww.w3school.com.cn

http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F

%2C%2F%3F%3A%40%26%3D%2B%24%23

您可能感兴趣的文章:

  • js中编码函数:escape,encodeURI与encodeURIComponent详解
  • 谈谈encodeURI和encodeURIComponent以及escape的区别与应用
  • 深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
  • javascript 字符 Escape,encodeURI,encodeURIComponent
  • escape、encodeURI 和 encodeURIComponent 的区别
  • URL编码转换,escape() encodeURI() encodeURIComponent()
  • escape、encodeURI、encodeURIComponent等方法的区别比较
  • 简单明了区分escape、encodeURI和encodeURIComponent

例2:

<script language="javascript">document.write('
<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent(" rel="external nofollow" http://cang.baidu.com/bruce42")+'">退出</a>');</script>

对URL中的参数进行编码,因为参数也是一个URL,如果不编码会影响整个URL的跳转。

您可能感兴趣的文章:

  • js中编码函数:escape,encodeURI与encodeURIComponent详解
  • js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
  • 谈谈encodeURI和encodeURIComponent以及escape的区别与应用
  • javascript 字符 Escape,encodeURI,encodeURIComponent
  • escape、encodeURI 和 encodeURIComponent 的区别
  • URL编码转换,escape() encodeURI() encodeURIComponent()
  • escape、encodeURI、encodeURIComponent等方法的区别比较
  • 简单明了区分escape、encodeURI和encodeURIComponent

本文由美高梅网址发布于计算机网络,转载请注明出处:js中字符串编码函数escape美高梅网址,深入分析

上一篇:函数读取页面的方法,方法实例详解 下一篇:JavaScript实现点击按钮后变灰避免多次重复提交,
猜你喜欢
热门排行
精彩图文