【问题标题】:Java decode string escaped by Actionscript由 Actionscript 转义的 Java 解码字符串
【发布时间】:2011-10-18 09:23:31
【问题描述】:

我有一个环境,其中字符串由 Actionscript escape() 函数进行百分比编码,然后传递给 Java 进行解码。

例如,我有一个测试字符串"m é"
它被传递给输出"m%20%E9"
的Actionscript escape() 当我尝试使用 Java 对其进行解码时:

URLDecoder.decode("m%20%E9", "UTF-8")

结果是:

"m ?"

%E9 似乎是“é”字符的 unicode 点,但 Java decode 不太理解。
有没有办法在 Java 中解码由 Actionscript escape() 编码的字符串? 这些函数使用什么转义格式,因为它们看起来不同?

提前感谢您的帮助,
保罗

【问题讨论】:

    标签: java actionscript escaping decode urldecode


    【解决方案1】:

    m%20%E9 不是 UTF-8。这很容易看出,因为 ASCII 范围之外的任何字符(即 0-127)在 UTF-8 中至少需要 2 个字节。因为%20 是空格,所以只剩下%E9 用于é。

    而é实际上是U+00E9。编码将 1:1 映射到 Unicode 的低 255 个字符是ISO-8859-1

    所以正确的解码方法是这样的:

    URLDecoder.decode("m%20%E9", "ISO-8859-1")
    

    【讨论】:

    • 您好 Joachim,感谢您的帮助,但您的代码为我生成了相同的结果“m?” :(
    • @Paull:对我来说,它产生“mé”,正如预期的那样。
    • 你是对的,我尝试了一个新的应用程序,它运行良好。我的设置一定有问题。再次感谢!
    猜你喜欢
    • 2017-07-16
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多