润乾报表中文传参乱码的问题

参数乱码处理流程图:


传参数的时候,经常会碰到乱码问题,下面对常见的几种解决方法做一下总结:

参数传到接收页面是否乱码,可以先让客户在接收参数的 jsp页面将接收到的参数打印出来,确认是否已经是乱码了。如果已经乱码了,有以下一些方法来解决。

1.在页面接受参数的代码前加上转码语句。
request.setCharacterEncoding( “GBK” );

2.客户页面的编码是utf-8 
建议客户将接收到的参数进行转码
String name = new String(request.getParameter(“name”).getBytes(“gb2312”),”utf-8”);

客户页面的编码是GBK
String arg1 = new String(request.getParameter(“arg1”).getBytes(“GB2312”),”GBK”);

3.http请求中,带参数
修改应用服务器的配置文件。如tomcat的server.xml文件
<!– Define a non-SSL HTTP/1.1 Connector on port 8080 –>
    <Connector port=”8080″
               maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″
               enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
               connectionTimeout=”20000″ disableUploadTimeout=”true” URIEncoding=”GBK”/>
加上最后的uriEncoding就OK了

4.做负载均衡的时候,参数乱码
修改应用服务器的配置文件。如tomcat的server.xml文件
 <!– Define an AJP 1.3 Connector on port 8009 –>
 <Connector port=”8010″  enableLookups=”false”  redirectPort=”8443″  protocol=”AJP/1.3″
URIEncoding=”GBK”/>
加上最后的uriEncoding就OK了

注意:3 和 4 修改的是 server.xml 文件中不同的地方。

5.传递中文参数的时候,如果出现乱码,特别是双数中文正常,单数中文乱码的情况,可以尝试用如下办法解决:
(1)、客户端编码,使用js方法
function encode(obj){
obj.value=encodeURI(obj.value);
}
(2)、服务端解码,使用java类方法
keyword = java.net.URLDecoder.decode(keyword, “UTF-8″);

总结:把上次说的3和4设置好,一般就不会出现乱码了。

原文地址:https://www.cnblogs.com/Brainpan/p/3166795.html