天天看点

hibernate 连接 mysql 乱码的情况

在本地开发环境中,一切正常,部署到服务器后(windows 2003 +

tomcat)含有中文的查询和表单提交都有乱码,从以下几个方面检查并解决了问题:

1、将所有jsp、js、css文件默认编码改为了utf-8,未解决问题。

2、struts2的配置文件中加入了节点:<constant name="struts.i18n.encoding" value="utf-8" />  ,未解决问题。

3、web.xml中做如下确认和修改,未解决问题。

<filter>

<filter-name>encodingfilter</filter-name>

<filter-class>org.springframework.web.filter.characterencodingfilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>utf-8</param-value>

</init-param>

<param-name>forceencoding</param-name>

<param-value>true</param-value>

</filter>

4、spring 的配置文件中,将beans.xml做如下修改(红字部分),解决问题。

<bean id="datasource"

class="org.springframework.jdbc.datasource.drivermanagerdatasource">

<property name="driverclassname" value="com.mysql.jdbc.driver" />

<property name="url" value="jdbc:mysql://localhost:3306/db?useunicode=true&characterencoding=utf-8"

/>

<property name="username" value="db" />

<property name="password" value="db" />

</bean>

解决后分析了下,应该是服务器端mysql的默认字符集和本地开环境不一致造成的,所以前三步的解决办法不能解决这个问题,不过一个项目中一定要保证前端到底层的编码一致,不然会很麻烦。