在本地搞了一個SSM的項目練手,修改數據的時候,提交中文數據后居然亂碼了。網上一頓狂搜,最終花了幾個小時終於解決。
遂加以記錄,以便不時之需。
就這么個表單,如果提交中文修改就會亂碼,首先確定項目和數據庫編碼均為UTF-8格式,頁面中也有設置編碼格式為UTF-8
直接給出解決步驟:
1.針對頁面中亂碼的處理,在web.xml中添加spring框架的編碼過濾器配置:
<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> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2.針對mybatis做數據更新產生的亂碼處理,在數據庫配置后加編碼限制:
?useUnicode=true&characterEncoding=utf8
經測試,可以完美解決“中文亂碼”的問題。