Java插入中文到数据库中文变成?问号解决方法

时间:2024-03-27 11:55:00

在数据库中存储中文出现问题情况:

当出现这个种情况时:

Java插入中文到数据库中文变成?问号解决方法 结果在数据库中变成这样:
Java插入中文到数据库中文变成?问号解决方法而在控制台输出时又变成中文
Java插入中文到数据库中文变成?问号解决方法

注意:

写的properties文件里面:
url=jdbc:mysql://localhost:3306/tedu_ums?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai

中的characterEncoding=utf8
与数据库里的编码不同(一种是与创建的数据库的编码格式不同,另一种是与创建的数据库表的编码格式不同)。一般情况是没有提前设定好数据库的编码时会自动默认数据库的编码格式这种情况会出现第一种情况所以在创建数据库的时候就直接设定好数据库的编码格式,
在不确定是数据库的编码问题还是数据表的编码问题时需在数据库中输入:

show variables like 'character_set_database';

查看数据库的编码格式
Java插入中文到数据库中文变成?问号解决方法很明显编码格式不一致,那么接下来就是修改数据库的编码格式了:

alter database tedu_ums character set utf8;

Java插入中文到数据库中文变成?问号解决方法
然后再查看数据表的的编码格式

show create table t_user;

Java插入中文到数据库中文变成?问号解决方法
当Java代码、数据库、数据表三者的编码格式相同时就好了