插入乱码表现如下:
解决方案:
1, 检查所有的网页编码是否都为:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
正常!
2, show variables like '%char%';查看mysql编码
+--------------------------+----------------------------------------------------
------------------+
| Variable_name | Value
|
+--------------------------+----------------------------------------------------
------------------+
| character_set_client | utf8
|
| character_set_connection | utf8
|
| character_set_database | utf8
|
| character_set_filesystem | binary
|
| character_set_results | utf8
|
| character_set_server | utf8
|
| character_set_system | utf8
|
| character_sets_dir | D:\DevelopPlatform\MySQL Server 5.7\MySQL Server 5.
7\share\charsets\ |
+--------------------------+----------------------------------------------------
------------------+
8 rows in set (0.00 sec)
结果正常!
3, 插入数据时进行String转码,
发现结果还是乱码, 说明不是这个问题
4, 检查tomcat配置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
问题出现了, 将配置改为:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
这样是解决请求方式为get的乱码问题,但是如果是使用post请求方式乱码如何解决呢?
如果是post请求方式乱码, 那么就可以添加一个Filter
在filter中过滤字符,添加如下语句:
request.setCharacterEncoding("UTF-8");
最后结果表现正常!
问题得解!