UTF-8解码问题

UTF-8 decoding problems

我对某些 URL 的 UTF-8 解码感到疯狂。我正在使用

URLDecoder.decode (java.net.URLDecoder) 

解码一些带有特殊字符的 URL。正如您在下面看到的,对于 URL 中的某些位置名称,解码有效,而对于某些位置名称则无效 ...

biha%C4%87 --> biha? (WRONG)
d%C3%A9partement+morbihan --> département morbihan (CORRECT)
gespanschaft+me%C4%91imurje --> gespanschaft me?imurje (WRONG)
hajd%C3%BA+bihar --> hajdú bihar (CORRECT)

有什么想法吗?非常感谢! 汤姆

试试这个:

    String url = "http://localhost:8080/servlets/TestServlet?name=!\"#$%&/()=?¡áéíóú";
    String encoded = URLEncoder.encode(url, "UTF-8");

    System.out.println("Encoded: " + encoded);
    System.out.println("Decoded: " + URLDecoder.decode(encoded, "UTF-8"));

使用 URLDecoder.decode(url, "UTF-8") 您的所有网址都已正确解码

然而,案例 1 和案例 3 的解码字符串包含代码点为 263 和 273 的字符。
您很可能将这些字符串打印到无法打印代码点大于 255 的字符并用 ? 替换的控制台。