我有一个环境,字符串是由Actionscript函数进行百分比编码,然后传递给escape()
进行解码。
例如,我有一个测试字符串"m é"
。
它被传递给输出"m%20%E9"
的Actionscript escape()
当我尝试用Java解码它时:
URLDecoder.decode("m%20%E9", "UTF-8")
结果是:
"m ?"
%E9似乎是"é“字符的unicode点,但Java解码并不能完全理解它。
有没有办法在Java中解码由Actionscript escape()编码的字符串?这些函数使用什么转义格式,因为它们似乎是不同的?
提前感谢你的帮助,
保罗
发布于 2011-08-02 23:51:17
m%20%E9
是,而不是 UTF-8。这很容易看出,因为任何超出ASCII范围(即0-127)的字符在UTF-8中至少需要2个字节。因为%20
是空格,所以只剩下%E9
作为é。
而é实际上就是U+00E9。编码将1:1映射到最低255个字符的Unicode,即ISO-8859-1。
所以正确的解码方法应该是这样:
URLDecoder.decode("m%20%E9", "ISO-8859-1")
https://stackoverflow.com/questions/6914785
复制相似问题