問(wèn)題描述:
1、將項(xiàng)目部署到服務(wù)器之后從頁(yè)面接收的中文亂碼
2、數(shù)據(jù)庫(kù)中原有的數(shù)據(jù)都能正常顯示
產(chǎn)生原因:沒(méi)有對(duì)Tomcat服務(wù)器和MySQL進(jìn)行配置更改
解決流程:
一、 修改Tomcat配置
更改兩個(gè)文件的配置
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>
默認(rèn)tomcat7中上面這段代碼在注釋中,把它注釋去掉。
重啟tomcat使配置生效。
二、 mysql配置
修改數(shù)據(jù)庫(kù)的配置文件my.cnf文件,此文件如果通過(guò)rpm安裝一般在/etc/目錄下,具體修改成的樣式如下圖所示
修改完成后,我們保存配置的修改,然后執(zhí)行命令service mysqld restart。重新啟動(dòng)數(shù)據(jù)庫(kù)。
進(jìn)入mysql,使用status查看數(shù)據(jù)庫(kù)信息,執(zhí)行命令show variables like ‘character%’; 查看更改后的編碼格式,執(zhí)行 use 數(shù)據(jù)庫(kù)名;然后執(zhí)行show create database 數(shù)據(jù)庫(kù)名; show create table 數(shù)據(jù)表名;查看對(duì)應(yīng)的數(shù)據(jù)庫(kù)和數(shù)據(jù)表編碼
修改此數(shù)據(jù)庫(kù)的編碼方式為utf8(默認(rèn)是latin1)
mysql> alter database 數(shù)據(jù)庫(kù)名 character set utf8;
SET NAMES ‘utf8’;