springmvc的中文亂碼問題主要有以下幾種情形:
頁面傳值到后台:
工程編碼(最后一開始建立工程就設置整個工程的編碼)
頁面的幾種編碼屬性的設置
get提交方式亂碼的處理
post提交方式亂碼的處理
后台到數據庫亂碼:
數據庫連接字符串指定編碼格式
數據庫編碼屬性(也是一開始設置數據庫的時候就要設置好,不然要重新建數據庫)
1.頁面的幾種編碼屬性
pageEncoding="UTF-8" jsp頁面編碼,jsp文件本身的編碼
contentType="text/html; charset=UTF-8" web頁面顯示的編碼,jsp頁面輸出流在瀏覽器中顯示的編碼
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> web界面的輸入編碼,就是輸入框中輸入的字體編碼。
2.get提交方式亂碼處理(一般是由於tomcat引起的,所以需要設置tomcat的編碼)
改tomcat中server.xml中的port=“8080”,加上一個 URIEncoding=”utf-8” 如下圖

3.post提交方式亂碼處理(在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>
4.數據庫連接字符串指定編碼
jdbc.url=jdbc:mysql://localhost:3306/student?characterEncoding=UTF-8

