將專案部署到Tomcat伺服器後從頁面接收MySQL資料中文亂碼
問題描述:
1、將專案部署到伺服器之後從頁面接收的中文亂碼
2、資料庫中原有的資料都能正常顯示
產生原因:沒有對Tomcat伺服器和MySQL進行配置更改
解決流程:
一、 修改Tomcat配置
更改兩個檔案的配置
1.server.xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
URIEncoding="UTF-8" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
2.web.xml
<filter>
<filter-name>setCharacterEncodingFilter</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
預設tomcat7中上面這段程式碼在註釋中,把它註釋去掉。
重啟tomcat使配置生效。
二、 mysql配置
修改資料庫的配置檔案my.cnf檔案,此檔案如果通過rpm安裝一般在/etc/目錄下,具體修改成的樣式如下圖所示
修改完成後,我們儲存配置的修改,然後執行命令service mysqld restart。重新啟動資料庫。
進入mysql,使用status檢視資料庫資訊,執行命令show variables like 'character%'; 檢視更改後的編碼格式,執行 use 資料庫名;然後執行show create database 資料庫名; show create table 資料表名;檢視對應的資料庫和資料表編碼
修改此資料庫的編碼方式為utf8(預設是latin1)
mysql> alter database 資料庫名 character set utf8;
SET NAMES 'utf8';