今天在调用一个接口时,需要传递一个中文参数,结果获取不到数据,原因就在于中文传参的编码问题。
问题来源: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字符集,所以要转换一下。