我在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")
我得到的结果完全不同。任何人都可以把我带到我搞砸的地方?
感谢
答案 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”等......