取字符串 Mediæval%20Bæbes。它可以在 URL 中编码为 Medi%E6val+B%E6bes Mediæval%20Bæbes。首先,我在解码时得到正确的 æ 字符。后者给了我�(替换字符)。我不知道如何让 Java 以两种方式对其进行解码,可能在同一个 URL 中。我也尝试了 java.net.URI 和 apache 的 URLCodec。
谢谢
你永远不会找到这个难题的解决方案,因为这两个字符串是两种不同的编码。UTF-8æ
是 %C3%A6,%E6 是 ISO-8859-1。它只能这样工作
String s1 = URLDecoder.decode("Medi%E6val+B%E6bes", "ISO-8859-1");
String s2 = URLDecoder.decode("Mediæval%20Bæbes", "UTF-8");
String s3 = URLDecoder.decode("Medi%C3%A6val%20B%C3%A6bes", "UTF-8");