Java URL解码器解码多次

Java URL解码器解码多次,java,utf-8,decode,urldecode,Java,Utf 8,Decode,Urldecode,是否有任何方法可以完全解码字符串?比如我有 monta%25C3%25B1a,如果我使用urldecker.decode方法一次:它返回monta%C3%B1a,如果我再次解码,它最终返回montaña(即完全解码的字符串)。Java中是否有任何方法或库可以达到此结果 monta[%25]C3[%25]B1a monta % C3 % B1a which has a UTF-8 multi-byte sequence monta ñ a 重要的是解码时使用与

是否有任何方法可以完全解码字符串?比如我有

monta%25C3%25B1a,如果我使用urldecker.decode方法一次:它返回monta%C3%B1a,如果我再次解码,它最终返回montaña(即完全解码的字符串)。Java中是否有任何方法或库可以达到此结果

monta[%25]C3[%25]B1a
monta  %  C3  %  B1a    which has a UTF-8 multi-byte sequence
monta       ñ      a
重要的是解码时使用与编码时相同的字符集。 显然,它的URL编码了两次,首先是UTF-8,然后
%
仍然编码了一次

应修复两次编码,否则会留下无法理解的补丁:

s = URLDecoder.decode(s, StandardCharsets.UTF_8);
s = URLDecoder.decode(s, StandardCharsets.UTF_8);

不,没有那样的事,因为你不应该进行两次URL编码。这取决于你去实现类似的东西,或者最好改变执行这种双重编码的代码。我的朋友,你真是个天才!为什么他们要对url进行双重编码+1.