說到亂碼處理,對於很多人來說是非常經常遇到的,現在來總結一下web工程中中文亂碼處理的幾個步驟,亂碼處理大致可以分為一下幾步,分別從頁面到數據庫:
頁面傳值到后台:
工程編碼(最后一開始建立工程就設置整個工程的編碼)
頁面的幾種編碼屬性的設置
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
這幾種辦法大部分的亂碼問題是可以解決的,也不排除,會有一些莫名其妙的亂碼問題,當然對於那些比較另類的亂碼問題,大家可以對亂碼的字符串進行轉碼,看看是否有效果,轉碼的代碼百度隨便找,這里就不給出來了

