1

我在 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")

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

谢谢


4

2 回答 2

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

在 JAVAjava.net.URLDecoder.decode(String)中已弃用。

于 2012-06-24T13:14:00.887 回答
1

当你只使用

解码(字符串 s)

已弃用,生成的字符串可能会因平台的默认编码而异。相反,使用

解码(字符串 s,字符串编码)

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

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

于 2012-06-24T14:21:42.040 回答