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


    参数乱码处理流程图:


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

    参数传到接收页面是否乱码,可以先让客户在接收参数的 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设置好,一般就不会出现乱码了。

  • 相关阅读:
    微信开发:MySQL utf8mb4 字符集
    Spring 事务
    Exception
    mysql系列之多实例介绍
    python连接MySQL
    1_archlinux_安装篇
    apache中如何调用CGI脚本
    1.1_Django简介及安装
    git分支合并脚本
    用python收集系统信息
  • 原文地址:https://www.cnblogs.com/Brainpan/p/3166795.html
Copyright © 2020-2023  润新知