一文彻底解决 MySQL 乱码问题

本文详细记录了解决MySQL数据库中创建表时的编码问题以及JDBC插入中文数据时遇到的乱码问题。首先,通过`show variables like 'char%'`和`show variables like 'character_set_database'`检查数据库编码,发现为Latin1。在创建表时需指定`default character set=utf8`。若已创建表,可通过`alter table <表名> character set utf8`修改表编码。当表编码更改后,若列编码未变,还需使用`alter table result change subject name subject name varchar(255) character set utf8`修改列编码。在JDBC连接时,需设置URL参数`useUnicode=true&characterEncoding=utf8`以确保数据正确传输。经过这些步骤,成功解决了乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(记录自己遇到的乱码问题 以及解决方法)

1 首先最常见的就是建立MySQL表的时候编码设置的问题

查看所有编码

show variables like 'char%'

或者查看数据库编码

 show variables like 'character_set_database';

可以看到数据库默认是Latin1格式 ,如果不在创建表的时候设定utf8,

create table 表名(属性)default character set = 字符集;

那么插入中文就会报错

首先查看表的编码格式

show create table 表名;

更改为 utf8

.修改数据表格编码格式

alter table <表名> character set utf8;

插入中文仍然报错

这时突然观察到,虽然表的编码格式变化了,但是列的编码格式并没有变化,所以将列的编码格式改变

 alter table result change subjectname subjectname varchar(255) character set utf8;

继续插入,问题解决

2  JDBC插入乱码问题

该问题也是一个常见问题,JDBC插入中文数据乱码

 

需要连接数据库的时候设置成utf8

String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8"

成功解决问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值