当前位置:  开发笔记 > 编程语言 > 正文

AS3 string util转换为x-www-form-urlencoded?

如何解决《AS3stringutil转换为x-www-form-urlencoded?》经验,为你挑选了1个好方法。

是否有用于将as3中的字符串转换为application/x-www-form-urlencoded格式的库?

具体来说,我正在寻找与java URLEncoder相同的功能http://java.sun.com/javase/6/docs/api/java/net/URLEncoder.html

不幸的是,as3的转义和encodeURIComponent函数没有这样做.例如,很多%20s而不是+'s.



1> Christian Nu..:

对于编码URL参数,%20和+都是空格字符的有效表示,URLVariables.toString()和URLUtil.objectToString()都使用前者发出兼容的application/x-www-form-urlencoded数据(根据ECMA- 262).的是encodeURI() ,encodeURIComponent方法()和逃逸()功能的全部类似地操作.来自AS3文档:

flash.net.URLVariables.toString()

在MIME内容编码application/x-www-form-urlencoded中返回包含所有可枚举变量的字符串.

mx.utils.URLUtil.objectToString()

您通常使用此方法将ActionScript对象转换为String,然后将其附加到URL的末尾.默认情况下,无效的URL字符是URL编码的(转换为%XX格式).

encodeURIComponent方法()

将字符串编码为有效的URI组件.将URI的子字符串转换为字符串,其中所有字符都编码为UTF-8转义序列,除非字符属于一小组基本字符.

逃逸()

将参数转换为字符串并以URL编码格式对其进行编码,其中大多数非字母数字字符将替换为%十六进制序列.

这是一个显示所有四种方法的用法和输出的示例:

import mx.utils.URLUtil;

private function test():void
{
    var url:String = "http://www.google.com/search?";
    var s:String = "here is my search query";

    var variables:URLVariables = new URLVariables();
    variables.q = s;

    var o:Object = new Object();
    o.q = s;

    trace(url + "q=" + encodeURIComponent(s));
    trace(url + variables.toString());
    trace(url + "q=" + escape(s));
    trace(url + URLUtil.objectToString(o));
}

所有四个都发出相同的结果(就像JavaScript自己的encodeURIComponent()一样):

// http://www.google.com/search?q=here%20is%20my%20search%20query

不过我同意加号更加容易!要手动交换它们:

trace(url + "q=" + escape(s).split("%20").join("+"));

但是如果有一个ActionScript类或顶级函数使用加号而不是十六进制序列作为空格,我就不知道了.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有