解决正常情况下解决不了的中文乱码问题

本文介绍了一种在向数据库插入中文字符时遇到乱码的问题及其解决方案。通过调整数据库连接URL中的参数,确保了数据正确存储。

问题

写了个增加接口,写一条数据到数据库。

request和response都是json格式,从前端传过来的参数,是中文,我自己调接口,debug参数也是中文,而且什么过滤器

<!-- 过滤器utf-8 ,过滤从前端页面传过来的参数,设定为utf8-->
<!--<filter>
   <filter-name>encodingFilter</filter-name>
   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
   <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
   </init-param>
   <init-param>
      <param-name>forceEnCoding</param-name>
      <param-value>true</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>encodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>-->

数据库的编码格式


建的表的编码格式


连接数据库:

jdbc_url=jdbc:mysql://localhost:3306/bbxt?useUnicode=true&amp;characterEncoding=utf8
jdbc_user=root
jdbc_password=root

还有用java代码设置编码格式,反正统统都是正常的,但是添加到数据库都是????????

我的数据库版本是:


解决办法

后来才发现,原来问题是出在连接数据库的地方,改了一个地方:

jdbc_url=jdbc:mysql://localhost:3306/bbxt?useSSL=false&serverTimezone=UTC&useAffectedRows=true&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
jdbc_user=root
jdbc_password=root

就是这个url,从数据库名之后,加了一串很长的东东。分别都是啥意思呢?

来了。。。

useSSL=false 和服务器进行通信的时候使用SSL证书,默认为假。

serverTimezone=UTC 覆盖时区的检测/映射。当服务器的时区为映射到Java时区时使用。

useAffectedRows=true  是否用受影响的行数替代查找到的行数来返回数据,默认 false

useUnicode=true  使用Unicode编码格式

characterEncoding=utf8   设置编码格式为utf8

allowMultiQueries=true 批量更新   解决传的值取不到问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我就是那个大头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值