借鉴:
https://blog.csdn.net/l1509214729/article/details/80781740
总体来说,数据库是utf8的,连接方式是utf8的,确认好后,再去排查插入时候的insert语句在插入时是否是中文的
排查思路:
1.确定数据库是否是utf8字符集的
navicat
下图情况为正常
不是的话需要修改
修改:
mysql的ini配置文件 注意红框内容
mysql的配置文件路径查看
服务中找到mysql
[mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录. 注意斜线可能是反的 basedir=C:\work\page\utiles\mysql-5.7.23-winx64 # 设置mysql数据库的数据的存放目录 datadir=C:\work\page\utiles\mysql-5.7.23-winx64\Data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。 max_connect_errors=10 # 服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 collation-server=utf8_general_ci # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 #mysql_native_password default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8mb4
修改数据库配置文件后,需要重启mysql,在服务中找到mysql,进行重启
- 代码中,数据库链接配置部分 是否有utf8
//分别是 时区、ssl、字符串编码 ?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf8
最后: 检查代码执行时,insert的数据是否是中文