• jsp中文乱码终极解决方法


    转载 http://blog.csdn.net/csh624366188/article/details/6657350

    一 找出问题的根源
       乱码可能出现的地方:1 jsp页面中 
                           2 jsp页面之间相互传参的参数
                           3 与数据库中数据的存取
       基本归纳为以上几种。

    二 寻找解决方案
       1 出现在jsp页面中,是由于没有设置jsp页面的中文字符编码。
       2 出现在jsp页面之间相互传参,是由于参数没有设置正确的字符编码。
       3 以上2个问题解决了,那么存到数据库中,自然就不存在乱码。除非你对存入到数据库里的数据再次进行编码。
    三解决方法:
    1的解决方法 

    <% @ page contentType = " text/html;charset=gb2312 "   %>

    加上这句解决jsp页面中的中文乱码显示,tomcat编译完后向客户端输出的html文件不是采

    用中文编码,所以会导致乱码产生。

    2的解决方法
    2.1 

    <% request.setCharacterEncoding( " gb2312 " ); %>

    加上这句解决jsp页面中的中文参数传递乱码。
    因为浏览器默认使用的编码是“UTF-8”发送请求参数。
    我们把它改为"gb2312"就ok了。

    2.2

    String(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");

    这句的意思是,把传来的参数全部编码转换成gb2312,这样做的缺点是每次传来一个参数

    都要这样写,很麻烦。

    同样可通过设置server.xml配置文件来实现。

    < Connector
    port ="8080"                maxHttpHeaderSize ="8192"
                   maxThreads ="150"  minSpareThreads ="25"  maxSpareThreads ="75"
                   enableLookups ="false"  redirectPort ="8443"  acceptCount ="100"
                   connectionTimeout ="20000"  disableUploadTimeout ="true"   URIEncoding ="gb2312" />
    但是这样就应用到整个webapp中去了。
    
    另: <% @page pageEncoding = " gb2312 " %>
    此句是为了让jsp编译器能正确地解码含有中文字符的jsp页面。
    
    其它方法还可以修改web.xml文件,配置一个过滤器。其原理都一样,只是换种方式而已。
    有的书上专门写了一个函数来解决乱码,实际上对比一下就知道那种解决方法的好与坏。
    回过头来一看,解决乱码也不过如此。
    ok,实际就加上这3句搞定问题。
    <% @page pageEncoding = " gb2312 " %>
    <% @ page contentType = " text/html;charset=gb2312 "   %>
    <% request.setCharacterEncoding( " gb2312 " ); %>


  • 相关阅读:
    如何查找本地的ip
    jQuery解析AJAX返回的html数据时碰到的问题与解决
    angularjs之ng-bind和ng-model
    nodejs配置及cmd常用操作
    ID属性值为小数
    DOM对象
    js跨域问题
    加载图片失败,怎样替换为默认图片
    常用前端 网址
    echart字符云之添加点击事件
  • 原文地址:https://www.cnblogs.com/520future/p/7910277.html
Copyright © 2020-2023  润新知