zoukankan      html  css  js  c++  java
  • 润乾报表中文传参乱码的问题

    参数乱码处理流程图:


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

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

  • 相关阅读:
    接口设计安全
    PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解
    OpenSSL使用小结
    sql的三种去重
    关于if语句&&运算符先判断空异常
    关于数据库可为null的datetime 字段
    sql server去重
    asp.net updatepanel 局部更新后调用js
    级联 -- 逻辑
    关于滑动验证的思路构思
  • 原文地址:https://www.cnblogs.com/Brainpan/p/3166795.html
Copyright © 2011-2022 走看看