【问题标题】:Flex + character getting replaced by blank when passed as application paramFlex + 字符在作为应用程序参数传递时被空白替换
【发布时间】:2011-07-02 08:40:11
【问题描述】:

我将一个字符串参数作为 FlashVars 传递给 flex 应用程序

参数有时包含特殊字符,一切正常,除了 + 号在达到 flex 时被空白替换。

这是例如的场景。

我在 JS 中有一个局部变量,它可以获取一些值,对于这个例子,它可以如下所示

<script language="JavaScript" type="text/javascript">   

    var testVar = "some_test_string_that_contains_+_character";

</script>

然后我将 "FlashVars","test="+testVar 传递给我的 Flex 对象 AC_FL_RunContent

在我编写的应用程序初始化的弹性代码中

var testValue:String = application.parameters["testVar"].toString();
Alert.show(testValue);

现在这显示很好,除了 + 字符被空白替换。它不会发生在其他字符上,例如 /,@$-_ 但 + 字符。

对此的任何帮助将不胜感激。

【问题讨论】:

    标签: apache-flex character-encoding flashvars


    【解决方案1】:

    来自Adobe's docs

    关于 flashVars 属性编码

    flashVars 属性的值 必须是 URL 编码的。的格式 string 是一组名称-值对 用与号 (&) 分隔。你可以 逃脱特殊和不可打印 带百分号 (%) 的字符 后跟一个两位数的十六进制 价值。你可以代表一个 空格使用加号 (+)。

    再往下看 matthew horn 的其中一个 cmets,看起来您可以使用 %2B 传递 + 字符。

    【讨论】:

    • 非常感谢。我正在从编码的查询字符串中读取变量,然后在将其传递给 flex 之前,我使用的是 testVar = unescape ( testVar );传递实际的字符串。我不知道 Flashvars 必须作为编码传递。谢谢(你的)信息。这很有帮助。
    • 奇怪的是 / 在不需要 url 编码的情况下运行良好。
    • 非常感谢,我遇到了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多