UTF-8解码问题

时间:2015-09-25 14:57:15

标签: java encoding utf-8 character-encoding decoding

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

URLDecoder.decode (java.net.URLDecoder) 

使用特殊字符解码某些网址。正如您在下面看到的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)

任何想法?会非常高兴! 汤姆

2 个答案:

答案 0 :(得分:1)

试试这个:

    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"));

答案 1 :(得分:1)

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

然而,情况1和3的解码字符串包含代码点263和273的字符 您很可能将这些字符串打印到控制台,该控制台无法使用代码点打印字符> 255并用?替换那些。