springMVC儲存資料到mysql資料庫中文亂碼問題解決方法

李秀才發表於2016-03-29

      今天遇到了亂碼問題,儲存到mysql資料庫的中文變成了問號(?)。折騰了老半天才搞定,現將解決方法記錄如下。

首先在web.xml最上面位置配置過濾器:

      <filter>
        <filter-name>CharacterEncodingFilter</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>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
此過濾器只針對post方法有效。forceEncoding的作用是忽略來源編碼(不管編碼沒有),強制以目標編碼為編碼格式。

然後去修改資料庫、表中列的編碼格式為utf8:



 最後設定資料來源的編碼格式:

 <property name="url" value="jdbc:mysql://121.40.90.125/test?useUnicode=true&characterEncoding=utf-8"></property>  
        如此儲存到資料庫的中文亂碼問題就解決了。


相關文章