1

取字符串 Mediæval%20Bæbes。它可以在 URL 中编码为 Medi%E6val+B%E6bes Mediæval%20Bæbes。首先,我在解码时得到正确的 æ 字符。后者给了我�(替换字符)。我不知道如何让 Java 以两种方式对其进行解码,可能在同一个 URL 中。我也尝试了 java.net.URI 和 apache 的 URLCodec。

谢谢

4

2 回答 2

1

你永远不会找到这个难题的解决方案,因为这两个字符串是两种不同的编码。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");
于 2013-09-07T01:03:55.303 回答
0

第一个是安全编码:第二个不是,因此不起作用。

看到这个

编辑:更好的参考

于 2013-09-07T00:01:26.060 回答