標籤:import alt string 修改 toc SQ utf-8 pos cti
1.web項目出現亂碼問題
做web項目的時候,多多少少會出現中文亂碼問題。
對於jsp頁面表單提交,controller接收亂碼,儲存到資料庫中文亂碼等問題,統一給出幾種亂碼的解決方式。
1.項目編碼沒有設定為utf8
有一些普遍的亂碼問題,是因為我們在建立web項目或者是匯入別人的web項目的時候,沒有設定項目的編碼。項目沒設定utf-8編碼會導致中文亂碼。
2.確保資料庫編碼為utf8,以mysql為例,可到mysql目錄下,my.ini檔案中修改後,重啟mysql服務
重啟mysql服務方法:
3.資料庫建庫時,確認編碼為utf-8,以使用Navicat為例
4.在jsp頁面亂碼問題
可以在 jsp的頂端加入;
<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8”%>
Head中加入
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8”>
form表單的提交方式設為 “Post”
5.如果使用的是spring,可以在項目的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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
6.在java代碼的controller層或者是form表單提交的action中,設定:
request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
7.tomcat設定
開啟tomcat安裝路徑下的conf-server.xml 檔案:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
以上7種基本上是用來解決jsp頁面表單提交,controller接收亂碼,資料庫亂碼等問題,一般4,5,6方法最常用也是關係最大的。
比如我有寫form表單,提交資料到資料庫的時候,開啟資料庫發現中文亂碼,設定什麼utf-8之類的都是設定了的。
於是採用第5種方式,加入字元過濾器。
web.xml中:
效果:
jsp頁面表單提交,controller接收亂碼,資料庫亂碼等解決方案