问题

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

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 批量更新   解决传的值取不到问题。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-09
  • 2021-05-14
  • 2022-01-08
猜你喜欢
  • 2021-10-08
  • 2021-05-13
  • 2021-12-24
  • 2021-11-28
  • 2022-01-20
  • 2022-01-15
相关资源
相似解决方案