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

来源:互联网 发布:北京数据录入 编辑:程序博客网 时间:2024/05/01 02:00

很多同学在刚开始接触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包含世界上所有的字符,可以容纳任何字符集的任何字符。

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

0 0
原创粉丝点击