我对某些网址的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)
任何想法?会非常高兴! 汤姆
答案 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并用?
替换那些。