共计 977 个字符,预计需要花费 3 分钟才能阅读完成。
问题描述:
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’;
: