关于JAVA中URL传递中文参数的问题

今天在调用一个接口时,需要传递一个中文参数,结果获取不到数据,原因就在于中文传参的编码问题。

问题来源: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字符集,所以要转换一下。