2011-08-02 23 views
2

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

我有例如测试字符串"m é"
它传递为ActionScript越狱()输出"m%20%E9"
当我尝试它与Java解码:

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

结果是:

"m ?" 

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

在此先感谢您的帮助,
保罗

回答

10

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") 
+0

约阿希姆您好,感谢您的帮助,但你的代码产生了我同样的结果?“M” :( – Paull

+0

@Paull:对我来说,它会生成“mé”,正如预期的那样。 –

+0

你是对的,我在一个新的应用程序中尝试过,它的工作原理非常完美。 – Paull

相关问题