Struts2.x项目页面中文乱码,需要注意的几处

Struts2.x项目中文乱码,需要注意的几处
1、页面
2、配置文件struts.xml
3、过滤器
4、服务器(这里指定的是TomCat)
5、数据库

比如统一使用GBK
一、JSP页面
     一般JSP页面乱码,需要注意该句(注:原来这里写的感觉不够准确,2011-1-26修改)

    <%@ page language="java" contentType="text/html; charset=GBK"%>
    //一般下边的两项可以不用写
    <%request.setCharacterEncoding("GBK");%>


    在页面head标签里写

            <meta http-equiv="Content-Type" content="text/html; charset=GBK">

 

     (2011-1-26补充)

     如果在页面中有引入页面

     动态引入:<jsp:include...   和 静态引入:<%@ include file...

     除了在本页面写上 <%@ page language="java" contentType="text/html; charset=GBK"%>,被引入的页面也要写上,而且两页面必须一致

 

 

 二、struts.xml配置文件

    从web.xml的配置可以知道Struts2.x是一个Filter
    所以struts.xml要写上

    <constant name="struts.i18n.encoding" value="GBK"/>
    需要注意的是,曾经听说在Struts2.1.6,加入了该项设置也无法解决中文的乱码问题。但本人没试过

 

 

三、过滤器
    如果项目中写了并配置了Filter(过滤器),就需要看看Filter的doFilter方法中
    request.setCharacterEncoding(...);
    response.setCharacterEncoding(...);
    这两个方法是否写成了其他的编码,如果是,要改成
    request.setCharacterEncoding("GBK");
    response.setCharacterEncoding("GBK");
    filterChain.doFilter(request, response);


四、TomCat服务器
    打开 TomCat_Home/conf/server.xml
    找到设置端口号的那项,检查一下,是否写了 URIEncoding="GBK" 这项
      <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
                connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>

 


五、数据库
    如果数据库是MySql,并且是JDBC直接链接数据库,在数据库的数据库URL中加上
    useUnicode=true&characterEncoding=GBK
    注:5.0以上的可以不加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值