宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]处理字符编码escape、encodeURI、encodeURIComponent比较

2016-10-13 00:16:48 点击量:20 标签: 收藏本文

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中的非法字符并且对路径中常出现的“/”不进行编码。

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室