搭建SpringBoot+mybatis做一个业务模拟测试小系统,出现了数据持久化到MySQL中文乱码的问题。同样的代码在不同的机器上运行结果不一样(当然数据库表、字段配置相同):
*Win7 bit64 IDEA2018.2 中文不乱码
Mac 10.15 IDEA2019.3 乱码*
在经历了一系列思考和查询后得出结论:IDE环境不一样,导致编码不一致。于是把Mac上的FileEncoding给设置为UTF-8,然而并没有卵用。
最后在application.yml配置中找到了答案:
spring:
datasource:
name: test
url: jdbc:mysql://127.0.0.1:3306/iplay?serverTimezone=UTC&&useUnicode=true&&characterEncoding=utf-8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
一开始也配置了时区、编码,但是就是不起作用,有时候成也细节败也细节,在url参数连接符的地方要多加【&】符号。
?serverTimezone=UTC&&useUnicode=true&&characterEncoding=utf-8
加上后再次保存中文数据就正常了。