Java-URLDecover.decode(字符串s)与URLDecover.decode(字符串s,字符串enc)

Java-URLDecover.decode(字符串s)与URLDecover.decode(字符串s,字符串enc),java,urldecode,Java,Urldecode,两者的区别是什么 URLDecoder.decode(String s) 及 我有一个cookie值,比如 val=%22myvalue%22 我正在检索它: Cookie[] cookies = request.getCookies(); String val = cookies[0].getValue(); 但是val的值是%22myvalue%22 所以我尝试了urldecker: String val1 = URLDecoder.decode(val); String val2

两者的区别是什么

URLDecoder.decode(String s)

我有一个cookie值,比如

val=%22myvalue%22
我正在检索它:

Cookie[] cookies = request.getCookies();

String val = cookies[0].getValue();
但是
val
的值是
%22myvalue%22

所以我尝试了
urldecker

String val1 = URLDecoder.decode(val);
String val2 = URLDecoder.decode(val, "utf8");
两者的值相同,即
myvalue

那么两者之间的区别是什么呢

URLDecover.decode(字符串s)

解码x-www-form-URL编码字符串。平台的默认编码用于确定“%xy”形式的任何连续序列所代表的字符

注意:已弃用

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

使用特定的编码方案解码应用程序/x-www-form-Url编码字符串。提供的编码用于确定由“%xy”形式的任何连续序列表示的字符


您可以找到完整的信息。

urldecker.decode(字符串s)
由于不确定编码上的意外行为而被弃用。所以另一个更好?使用弃用的方法/类总是一个坏主意,因为它们在以后的版本中会被完全删除。这就是为什么它们在一段时间内被弃用的原因。简:是的@AXELAMTOR对不推荐使用的方法/类进行了良好而简要的解释+1评论。这只是复制文档。它没有添加任何内容来解释解码值相同的原因。
String val1 = URLDecoder.decode(val);
String val2 = URLDecoder.decode(val, "utf8");