由Actionscript转义的Java解码字符串

时间:2011-08-02 15:47:01

标签: java actionscript escaping decode urldecode

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

我有一个测试字符串"m é" 它传递给Actionscript escape(),输出"m%20%E9"
当我尝试用Java解码时:

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

结果是:

"m ?"

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

提前感谢您的帮助,
保罗

1 个答案:

答案 0 :(得分:10)

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

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

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

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