AS2.0与AS3.0编码解码方法的区别
2012-02-06 12:13:51 来源:本站整理最近发现在as2.0语言中用unescape()对网页以UTF-8 格式编码的数据进行解码,数据显示正确,没发现乱码情况,但在as3.0中用同样的方法进行解码时,却依然是乱码。 对比一下as2和as3中的escape()的官方说明:
as2: escape(expression:String) : String
将参数转换为字符串,并以 URL 编码格式对其进行编码,在这种格式中,所有非字母数字的字符都替换为 % 十六进制序列。当用于 URL 编码的字符串中时,百分号 (%) 用于引入转义字符,不与模运算符 (%) 等效。
as3: 将参数 str 作为字符串计算,从 URL 编码格式解码该字符串(将所有十六进制序列转换成 ASCII 字符),并返回该字符串。
实际上在as3中并不是所有非字母数字的字符都可被转义只是大部分而已,比如:@ - _ . * + / 这7个特殊字符不再被转义了。
特别要注意的是两者对中文字的转义更是不同,所以在as2.0用unescape()能正确解码的数据,放在as3.0上并不能得到相同的数据。
然而as3.0新增了几个用于编码解码函数,encodeURI,encodeURIComponent,decodeURI,decodeURIComponent。测试时发现AS3中的encodeURI和decodeURI与AS2中的escape和 unescape对数据的处理基本一样,也就是说在as2.0中用unescape()能正确解码的数据在as3.0上用decodeURI()方法则基本能得出同样的数据。但还有个要注意的地方,有一小组基本字符的字符不会由 encodeURI 函数转换为 UTF-8 转义序列的基本字符的整个集合。如下表:
未编码的字符
0 1 2 3 4 5 6 7 8 9
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
; / ? : @ & = + $ , #
- _ . ! ~ * ' ( )
- ››asp.net页面弄成伪静态页面
- ››Asp.net 中将汉字转换成拼音的方法
- ››ASP.NET及JS中的cookie基本用法
- ››ASP.NET获取MS SQL Server安装实例
- ››asp.net实现调用百度pai 在线翻译英文转中文
- ››ASP.NET页面选项进行提示判断
- ››Asp.net定时执行程序
- ››ASP.NET中利用DataList实现图片无缝滚动
- ››ASP.NET验证控件RequiredFieldValidator
- ››ASP.NET中使用System.Net.Mail发邮件
- ››ASP.NET中获取用户控件中控件的ID
- ››ASP.NET中FileBytes写成文件并存档
更多精彩
赞助商链接