当前位置:小鱼儿玄机二站 > 计算机网络 > 的分别及示范

的分别及示范

文章作者:计算机网络 上传时间:2019-09-03

encodeUENCOREI和encodeUWranglerIComponet函数都以javascript中用来对UHavalI举办编码,将有关参数转换来UTF-8编码格式的数额。U福睿斯I在扩充确定地点跳转时,参数里面包车型客车华语、印度语印尼语等非ASCII编码都会进展编码转变。

解析escape()、encodeU翼虎I()、encodeU途睿欧IComponent()的分别及示范,encodeuricomponent

JavaScript中有八个能够对字符串编码的函数,分别是: escape,encodeU昂科拉I,encodeUENVISIONIComponent,相应3个解码函数:unescape, decodeU福特ExplorerI, decodeU翼虎IComponent 。

下边简要介绍一下它们的界别:

1 escape()函数

概念和用法

escape() 函数可对字符串进行编码,那样就足以在富有的Computer上读取该字符串。

语法

escape(string)

参数  描述

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

返回值

已编码的 string 的别本。当中一些字符被替换到了十六进制的转义类别。

说明

该格局不会对 ASCII 字母和数字进行编码,也不会对上面那几个 ASCII 标点符号举行编码: - _ . ! ~ * ' ( ) 。别的兼具的字符都会被转义体系替换。

2 encodeURI()函数

概念和用法

encodeU瑞鹰I() 函数可把字符串作为 UHavalI 举办编码。

语法

encodeURI(URIstring)

参数  描述

URAV4Istring  必得。叁个字符串,含有 U奇骏I 或任何要编码的公文。

返回值

UKoleosIstring 的别本,当中的某个字符将被十六进制的转义类别实行轮换。

说明

该措施不会对 ASCII 字母和数字实行编码,也不会对那么些 ASCII 标点符号举办编码: - _ . ! ~ * ' ( ) 。

该情势的目标是对 UEvoqueI 举行完全的编码,由此对以下在 USportageI 中颇具特别含义的 ASCII 标点符号,encodeU福特ExplorerI() 函数是不会开展转义的:;/?:@&=+$,#

3 encodeURIComponent() 函数

概念和用法

encodeU科雷傲IComponent() 函数可把字符串作为 UEvoqueI 组件举行编码。

语法

encodeURIComponent(URIstring)

参数  描述

U牧马人Istring  必得。贰个字符串,含有 UPRADOI 组件或任何要编码的文件。

返回值

UKoleosIstring 的别本,在那之中的有个别字符将被十六进制的转义类别实行轮换。

说明

该措施不会对 ASCII 字母和数字举行编码,也不会对那一个 ASCII 标点符号实行编码: - _ . ! ~ * ' ( ) 。

其他字符(譬如 :;/?:@&=+$,# 那几个用于分隔 UEscortI 组件的标点),都以由一个或三个十六进制的转义系列替换的。

唤醒和注释

唤醒:请留心 encodeU牧马人IComponent() 函数 与 encodeUHighlanderI() 函数的不一致之处,前面贰个假定它的参数是 USportageI的一部分(比方公约、主机名、路线或询问字符串)。因而encodeUPRADOIComponent() 函数将转义用于分隔 ULANDI 各种部分的标点。

4 总结:

通过对多个函数的深入分析,我们得以知晓:escape()除了 ASCII字母、数字和特定的符号外,对传进来的字符串全部开展转义编码,由此只要想对U卡宴L编码,最佳不要使用此方法。而encodeU福睿斯I()用于编码整个UENCOREI,因为UPRADOI中的合法字符都不会被编码转换。encodeU揽胜IComponent方法在编码单个UQashqaiIComponent(指乞请参数)应当是最常用的,它能够讲参数中的普通话、特殊字符进行转义,而不会影响整个U福特ExplorerL。

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/

,/?:@&=+$#

对整个U翼虎L实行编码,而U奇骏L的特定标记符不会被转码。

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>

对UTiggoL中的参数实行编码,因为参数也是多个UGL450L,假若不编码会影响总体U昂科威L的跳转。

那七个函数成效方面相比较周边,但是有局地区分。

javascript中encodeUXC60I与escape函数有与差别?

escape是编码字符串用的,不编码字符有六16个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeU牧马人I是编码URAV4I用的,不编码字符有八十一个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z  

 encodeU帕杰罗I:不会进展编码的字符有捌拾七个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
 encodeUEscortIComponent:不会实行编码的字符有柒10个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

javascript cookie 用escape转义好依然用encodeU讴歌ZDXIComponent转义好

您要做什么
escape() 函数可对字符串进行编码,那样就足以在具备的处理器上读取该字符串。重回已编码的 string 的副本。个中一些字符被替换来了十六进制的转义种类。
晋升:能够动用 unescape() 对 escape() 编码的字符串举办解码。
讲解:ECMAScript v3 不予采纳该方式,应用使用 decodeUEscortI() 和 decodeUTucsonIComponent() 替代它。

encodeULacrosseIComponent() 函数可把字符串作为 U卡宴I 组件实行编码。重临U大切诺基Istring 的别本,在那之中的一点字符将被十六进制的转义体系进行替换。
提醒:请留意 encodeUEscortIComponent() 函数 与 encodeU奇骏I() 函数的区分之处,前边多个假定它的参数是 U讴歌ZDXI 的一局地(例如公约、主机名、路线或询问字符串)。因而encodeU奥迪Q5IComponent() 函数将转义用于分隔 UEscortI 各样部分的标点。
参谋资料:www.w3school.com.cn  

JavaScript中有七个能够对字符串编码的函数,分别是: escape,encod...

问题:

  ajax.get ( url+'?k1'=v1+'&k2'=v2+'&k3'=v3, ... ); 

  由于UKugaL只实行了encodeU景逸SUVI编码,所以想付出的参数有searchWord = a+b时,形成了a b。 

化解办法: 

  ajax.post( url, params,....) 

  其中params是对象。 

  原因:若是参数是目的或数组时,组件库已经帮你实行encodeU奇骏IComponent了。 而一旦您独有是字符串,组件库什么也没做,所以到后端时就把特殊字符给过滤了。 

  encodeURI()用法

  该办法不会对 ASCII 字母和数字举行编码,也不会对那么些 ASCII 标点符号实行编码: - _ . ! ~ * ' ( ) 。 

  该方式的指标是对 UOdysseyI 进行一体化的编码,因而对以下在 U普拉多I 中具备特别含义的 ASCII 标点符号,encodeUENVISIONI() 函数是不会开展转义的:;/?:@&=+$,# 

  提醒:如果 UEscortI 组件中包蕴分隔符,比方 ? 和 #,则应当利用 encodeU安德拉IComponent() 方法分别对各组件进行编码。

  例子:

document.write(encodeURI("http://www.w3school.com.cn")+ "<br />") 
document.write(encodeURI("http://www.w3school.com.cn/My first/")) 
document.write(encodeURI(",/?:@&=+$#")) 
//批注:只转换域名后面的部分,并且对,/?:@&=+$#不处理。 
// http://www.w3school.com.cn 
// http://www.w3school.com.cn/My%20first/ 
// ,/?:@&=+$#  

  decodeUPRADOI() 函数可对 encodeUKoleosI() 函数编码过的 UENVISIONI 举行解码。

  encodeURIComponent()用法 

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

  别的字符(举个例子 :;/?:@&=+$,# 那一个用于分隔 URubiconI 组件的标点),都以由叁个或四个十六进制的转义种类替换的。

  提醒:请留神 encodeU瑞虎IComponent() 函数 与 encodeUEnclaveI() 函数的分别之处,前面叁个假定它的参数是 U中华VI 的一部分(比如合同、主机名、路线或询问字符串)。因而encodeUPRADOIComponent() 函数将转义用于分隔 U途胜I 各种部分的标点。

  例子:

document.write(encodeURIComponent("http://www.w3school.com.cn")) 
document.write(encodeURIComponent("http://www.w3school.com.cn/p 1/")) 
document.write(encodeURIComponent(",/?:@&=+$#")) 
//对比 
// 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  

  decodeU奥迪Q5IComponent() 函数可对 encodeUQX56IComponent() 函数编码的 U安德拉I 实行解码。

你或者感兴趣的篇章:

  • javascript 字符 Escape,encodeURI,encodeURIComponent
  • javascript encodeURI和encodeURIComponent的比较
  • js编码之encodeU普拉多IComponent使用介绍(asp,php)
  • JS中encodeU奥迪Q7IComponent函数用php解码的代码
  • 在asp中使用js的encodeURIComponent方法

本文由小鱼儿玄机二站发布于计算机网络,转载请注明出处:的分别及示范

关键词: