AS3:在URLVariables变量名称中使用下划线字符

时间:2012-01-09 04:49:27

标签: actionscript-3 urlvariables

是否可以在URLVariables变量名中使用下划线字符?例如,以下代码输出“my%5Fusername = foo”而不是“my_username = foo”。

import flash.net.URLVariables;
var variables : URLVariables = new URLVariables("my_username=foo");  
trace(variables.toString());

就像在跟踪中一样,“%5F”在请求中显示而不是下划线。有没有什么方法可以让下划线角色出现?

3 个答案:

答案 0 :(得分:1)

使用regular expression,您可以将输出转换为下划线。这种方法利用了以下事实:

  1. URLRequest的{​​{1}}变量是通用data
  2. ObjectString
  3. ObjecttoString()的输出为replace()个对象3。
  4. 代码:

    String

答案 1 :(得分:1)

只是不要使用URLVariables类,知道其他事情也是错误的。 This URL RFC将下划线称为特殊字符,并将其与字母数字放在同一类别中,表示不需要编码。 This RFC调用你将变量作为“查询”的部分,并为其分配pchar,将pchar描述为包含下划线字符。

实际上,包含下划线字符的URI似乎没有给浏览器或服务器带来问题,因此编码它是完全错误的。

编辑:从进一步阅读看起来更像是一个不合需要的行为,然后是一个错误(URI规范化器会知道将编码的下划线恢复为它的原始外观),仍然,编码下划线与编码字母相同英文字母 - 浪费和愚蠢。

答案 2 :(得分:0)

trace(unescape(variables.toString()));