由Actionscript转义的Java解码字符串

Pau*_*ull 2 java actionscript decode escaping urldecode

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

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

URLDecoder.decode("m%20%E9", "UTF-8")
Run Code Online (Sandbox Code Playgroud)

结果是:

"m ?"
Run Code Online (Sandbox Code Playgroud)

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

感谢
Paolo先生的任何帮助

Joa*_*uer 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")
Run Code Online (Sandbox Code Playgroud)