struts2、JDBC、MySQL的中文乱码解决

中文乱码,N老的话题了,呵呵。
不说废话了,直接讲我是怎么解决的吧。

我是按照别人说的,统一编码格式解决的。

1、将MySQL的默认编码设置为utf8,我是用“MySQL Server Instance Config Wizard”直接弄的,据说my.ini文件也可以设置,我没有试过。
   关于查看MySQL编码可以用这个命令:show Variables like '%set%'。
   
   还有提下,我创建数据库的代码设置默认为utf8编码格式,只是起先没用“MySQL Server Instance Config Wizard”修改整个MySQL默认配置的时候,还是出现乱码(在其他都已经弄好的前提下的)。
 
2、将所有的jsp页面都设置成:
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page pageEncoding="UTF-8"%>

3、数据库的默认编码设置为utf8,我是在创建数据库的SQL代码中设置的。(不知道在修改了MySQL默认设置后,是否还需要怎么做,没试过)

4、在web.xml中加一个过滤器,应该是个编码过滤器:

    <!-- 中文编码filter -->
    <filter>
        <filter-name>struts-cleanup</filter-name>
        <filter-class>
           org.apache.struts2.dispatcher.ActionContextCleanUp
        </filter-class>
    </filter>  
    <filter-mapping>
        <filter-name>struts-cleanup</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping> 

   这个过滤器要放前面,据说是过滤器的顺序问题也会影响到乱码的(好像是第一次会出现乱码)

5、接下来就是配置struts2的常量了,配置这个常量struts.i18n.encoding
   一种在struts.xml文件中配置,用<constant name="struts.i18n.encoding" value="utf-8"/>
   一种在struts.properties中配置,我的struts.properties是这样子的:
   struts.custom.i18n.resources=messageResource
   struts.locale=zh_CN
   struts.i18n.encoding=UTF-8

6、好像对于MySQL版本比较低(似乎是3.1一下的,忘记了)的数据库,还要加一条:
   在连接数据库url改为:
   url = "jdbc:mysql://localhost:3306/数据库名?useunicode=true&characterEncoding=utf8"
   即加入“?useunicode=true&characterEncoding=utf8”

都是网络上查后,抄的,别怪我剽窃,呵呵。

我这边出现的问题怪怪的:
第一次登录,在action中,页面中都是乱码,可是数据库居然没有乱码。
然后后退下,重新发送,全乱码了。
搞不明白怎么回事。

本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/linke_asus/archive/2008/10/07/3024699.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值