2015-09-25 76 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"));