完美解决MySql数据库乱码问题

很多同学在刚开始接触MySql数据库的时候,会碰到乱码问题,很是头疼,今天我就带大家彻底的解决MySql数据库乱码问题。

第一,安装MySql(在这儿就不赘述了)

第二,建数据库,建表如下图

 

 

插入数据

insert into t1 values (null,'我插入的是中文');

不好了,出现了错误,这是说中文无法识别,数据库不认识这个东西,存不进去,那么我们该怎么办呢!

如果你赶时间,在这里介绍一种最简单的解决乱码的方法 只需要写入这一条指令 set names gbk;回车然后插入再次数据

查询,ok,乱码解决!

那么如果你想搞清楚这里面的原因,接着看下去

执行show variables like'char%';

这一条命令就把数据库所有关于编码的选项都选择出来了,character_set_client 是客户端的编码,也可以右击属性里看到

怎么回事?怎么会是gbk????我明明看到的是utf8啊?难道见鬼了???不是见鬼了,这才是真正出现乱码的原因,客户端属性明明是GBK,而我们设置的却是utf8,

这就是说,当客户端存进来用GBK编码的数据时,我们告诉数据库说,这是utf8编码的数据,数据库会以utf8的编码方式编码GBK的数据后存入数据库,自然会出现乱码,

这是我们设置上的错误,只要执行命令

set character_set_client = gbk;

set character_set_results = gbk;

就ok了,意思是说用GBK编码GBK的数据,用GBK的编码方式查看机查询的结果集,自然就不会乱码了,

这时候可能会有人说,那怎么还有utf8呢?有两种编码怎么还能不乱呢?

这又要说道一个转换器的概念,就是说当客户端把数据传到数据库存储之前,还要经过转换器,就是cinnection,首先connection会把GBK的数据转换为UFT8然后存储,查询结果也需要转换,utf8包含世界上所有的字符,可以容纳任何字符集的任何字符。

这是字符集乱码的一种情况,希望对初学者有用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值