java中的URL解码没有给URL Decode php提供相同的结果

时间:2012-06-24 13:10:42

标签: java php java-ee

我在php中制作了简单的加密/解密方法,我正在尝试迁移到Java

在我的代码中,我从url获取值并在将其传递给我的解密函数之前对其进行urldecode

这在php中给出了正确的结果,但在java

中没有

这是我在php中的测试样本

urldecode("%9A%DC%CD%E1%DA%E2%D4%EA%C4%E6%9C%DA%D5%AD%CD%DF%E3%E4%C6%DB%A3%95%C4%DC%D2")

这是我在JAVA中尝试做的事情

java.net.URLDecoder.decode("%9A%DC%CD%E1%DA%E2%D4%EA%C4%E6%9C%DA%D5%AD%CD%DF%E3%E4%C6%DB%A3%95%C4%DC%D2")

我得到的结果完全不同。任何人都可以把我带到我搞砸的地方?

感谢


2 个答案:

答案 0 :(得分:2)

考虑改为尝试:

java.net.URLDecoder.decode("%9A%DC%CD%E1%DA%E2%D4%EA%C4%E6%9C%DA%D5%AD%CD%DF%E3%E4%C6%DB%A3%95%C4%DC%D2", "UTF-8")
JAVA java.net.URLDecoder.decode(String)中的

已被弃用。

答案 1 :(得分:1)

当您仅使用

decode(String s)

不推荐使用

,结果字符串可能会因平台的默认编码而异。相反,使用

decode(String s,String enc)

指定编码的方法。它使用特定的编码方案对application / x-www-form-urlencoded字符串进行解码。

enc可以是“UTF-8”,“ISO 8859-1”等......