天天看點

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的預設字元集和本地開環境不一緻造成的,是以前三步的解決辦法不能解決這個問題,不過一個項目中一定要保證前端到底層的編碼一緻,不然會很麻煩。