今天在調用一個接口時,需要傳遞一個中文參數,結果獲取不到數據,原因就在於中文傳參的編碼問題。
問題來源:URL url= new URL("http://XXX?OrganName=司法廳");
現解決辦法如下:
1、對要進行URL傳遞的中文字符進行編碼:
String message = Java.NET.URLEncoder.encode("司法廳","utf-8");
2、在取URL傳遞中文的頁面對字符進行解碼:
String msg = request.getParameter("message");
String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");
--------------------------------------------------------------------------------------
注:為什么要對取出的字符集形式轉換成UTF-8形式,是因為ISO-8859-1是Java中網絡傳輸使用的標准字符集,request.getParameter("message");得到的還是ISO-8859-1字符集,所以要轉換一下。