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

本文介绍了在Java操作数据库时遇到中文乱码问题的现象,即数据库中显示为问号,但控制台输出正常。问题关键在于`properties`文件中`characterEncoding=utf8`设置与数据库实际编码不符。解决方案包括在创建数据库时指定编码格式,或检查并调整数据库和数据表的编码以匹配Java代码中的设置。通过查询数据库和数据表的编码,确保三者一致,即可解决乱码问题。
摘要由CSDN通过智能技术生成

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

当出现这个种情况时:

在java代码中写插入中文数据时 结果在数据库中变成这样:
上面第14个出现中文变成?而在控制台输出时又变成中文
在这里插入图片描述

注意:

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

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

show variables like 'character_set_database';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值