2015-09-25 40 views
0

我对一些URL的UTF-8解码越来越疯狂。我正在使用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) 

任何想法?会高度appriciate! 汤姆

+0

PS:URL解码器(http://www.url-encode-decode.com/)编码正确: https://www.twago.de/s/freelancer/in/biha%C4%87/ - > https://www.twago.de/s/freelancer/in/bihać/ –

回答

1

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

然而壳体1和3的解码字符串包含与编码点263和字符273
最有可能你印刷这些字符串到不能与编码点> 255和它取代那些具有?打印字符的控制台。

+0

谢谢!这是问题:) char编码实际上在去往数据库的途中丢失了。所以我只是不得不改变一下休眠设置,现在它工作了!感谢您指点我正确的解决方案! –

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