Mysql5.7.22版本,插入中文乱码的问题
首先,mysql5.7.22版本的免安装版本的,需要自己配置信息,而且容易出现问题,这里还是建议下载安装版本.msi,按照安装教程进行安装;安装成功后会在数据存储的data文件下找到参数配置文件my.ini(并不是自己配置的)
(1) 创建表的字符集是utf8,当直接在navicat工具中执行sql插入数据时,中文是可以正常插入,并且不会出现乱码的问题。
(2) 当执行java代码,向数据库中插入中文时,中文变为’?????’问号显示,出现乱码。
问题排除过程:
1) 先查指定的表是否是utf8格式字符:
show create table 表名;
说明表创建时,字符集是没有问题的。
2) 修改mysql数据库的整体编码
查看方式数据库编码:show variables like '%char%';
出现上图情况时,可以进行数据库配置文件my.ini 文件修改:
打开my.ini(如上图的位置)找到[client]添加一行
default-character-set=utf8
找到[mysqld]这行添加代码如下
character-set-server=utf8 default-storage-engine = INNODB collation-server = utf8_general_ci init_connect='SET NAMES utf8'
保存my.ini文件后,重启mysql服务。可以查看show variables like '%char%';
再次执行java代码,向数据库中插入中文时,就不再出现乱码。
参考资料:
https://blog.csdn.net/zkzk96871/article/details/78307774