JAVA 需要開啟的url含有中文時的編碼問題
阿新 • • 發佈:2019-01-23
每次JAVA傳參涉及到中文時,總要被虐,這次雖然最後的解決還是比較簡單的,但為了紀念中間走的彎路還是決定記錄一下~~~
1、從前臺(jsp)到後臺(java)時傳遞了一箇中文引數:name
此時為防止亂碼,需要編碼成 utf-8(此處也可以編碼成 GBK和gb2312 格式,前提是要和你前臺設定的編碼格式相同),方法如下:
name = new String(name.getBytes(“ISO8859-1”),”utf-8”);
2、需要開啟的url連結為原有連結+name
雖然步驟1已經將name進行了utf-8編碼,但是開啟時資料就變成了 ????
此時,需要對name再次進行編碼,方法如下:
url = url + java.net.URLEncoder.encode(name,”utf-8”);
3、開啟url連結後獲得的資料又是亂碼。。。
啥也不說了,方法如下:
URL urlObject = new URL(url); //將String型資料變為url型別
URLConnection uc = urlObject.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(),”utf-8”)); //主要是這句需要加上編碼
以上完全是個人專案中遇到的問題,如果解釋不對的地方,歡迎指出!