有没有可以完全解码String的方法?例如我有
monta%25C3%25B1a,如果我使用UrlDecoder.decode方法ONCE:它将返回monta%C3%B1a,如果我将AGAIN解码,则最终将返回montaña(即已完全编码的字符串)。是否有任何方法或库在Java中达到此结果?
答案 0 :(得分:1)
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);