jdbc+tomcat+mysql插入utf-8中文乱码解决方案

插入乱码表现如下:

 解决方案:

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");

最后结果表现正常!


问题得解!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值