MySQL的中文乱码编码集解决方案


1:案例引入
SELECT gender AS 性别,COUNT(*) AS 总数,
MAX(height)AS 最高,
MIN(height)AS 最矮,
AVG(age)AS 平均年龄,
AVG(height)AS 平均身高,
SUM(age) AS 总的年龄 FROM t_student GROUP BY gender;
图形化客户端并没有出现乱码


2:相关知识
1:使用SQL语句查看数据库当前相关的编码集
1:use database test --选择当前的数据库
2:查询编码集
show variables like 'character%'; 


client为客户端指定使用的字符集
connection为连接数据库的字符集设置类型,如果MySQL程序没有指定数据库所使用的字符集类型则按照服务器端默认的字符集
database为数据库服务器中的某个库使用的字符集设定,如果创建数据库的是由没有指明的话,将使用服务器安装时指定的字符集
results为数据库给客户端返回时所使用的字符集设定,如果没有指明,使用服务器默认的字符集
server为服务器安装时指定的默认字符集设定
system为数据库系统使用的字符集设定
2:六种字符集
client,connection,database,results,server,system
3:服务器端字符集
database,server,system(不能更改 utf-8)
4:客户端字符集
connection,client,results
3:原因分析
CMD客户端窗口出现了乱码
1:因为当前的cmd客户端输入采用GBK编码,而数据库的编码格式是UTF-8,编码不一致才会造成了乱码情况的发生,而当前的cmd客户端的编码格式是无法修改的,所以只能修改connection,client,results的客户端的编码集来告知服务器端当前插入的数据是采用的gbk;
2:而服务器端的数据虽然是采用utf-8编码,但却可以通知服务器端GBK编码数据并将其转换为UTF-8存储起来
4:解决方案
1:设置编码集的两种方式
1:快速设置与客户端的编码集
set names gbk;
set names utf8;

2:修改my.ini配置文件设置编码集
与客户端相关配置
[mysql]
default-character-set=utf8
与服务器相关配置
[mysqld]
character-set-server=utf8
这时只需要将下的默认编码 default-character-set=utf8 改为 default-character-set=gbk ,重新启动 MySQL 服务即可。
2:注意问题
1:快速设置(set names gbk;)
客户端的字符集是可以解决客户端当前插入数据显示中文乱码的问题,但是注意:只是当前,当我们重新打开cmd客户端的窗口再次插入数据的时候,乱码问题又会出现

2:修改my.ini配置文件
再次打开cmd窗口,重新插入数据,不会出现中文乱码问题了
重新打开测试



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值