当向 MySQL 数据库插进去一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!')
; 涌现乱码时,能够运用语句 show variables like 'character%'
; 来检察当前数据库的相干编码集。
从上图中能够看到 MySQL 有六处运用了字符集,分别为:client 、connection、database、results、server 、system。个中与效劳器端相干:database、server、system(永久没法修正,就是utf-8);与客户端相干:connection、client、results 。
client |
为客户端运用的字符集。 |
connection |
为衔接数据库的字符集设置范例,假如顺序没有指明衔接数据库运用的字符集范例则根据效劳器端默许的字符集设置。 |
database |
为数据库效劳器中某个库运用的字符集设定,假如建库时没有指明,将运用效劳器装置时指定的字符集设置。 |
results |
为数据库给客户端返回时运用的字符集设定,假如没有指明,运用效劳器默许的字符集。 |
server |
为效劳器装置时指定的默许字符集设定。 |
system |
为数据库系统运用的字符集设定。 |
了解了上面的信息我们来剖析下乱码的缘由,题目出在了当前的 CMD 客户端窗口,由于当前的 CMD 客户端输入采纳 GBK 编码,而数据库的编码花样为 UTF-8,编码不一致致使了乱码发生。而当前 CMD 客户端的编码花样没法修正,所以只能修正 connection、 client、results 的编码集来示知效劳器端当前插进去的数据采纳 GBK 编码,而效劳器的数据库虽然是采纳 UTF-8 编码,但却能够辨认关照效劳器端的 GBK 编码数据并将其自动转换为 UTF-8 举行存储。能够运用以下语句来疾速设置与客户端相干的编码集:
set names gbk;
设置完成后即可处理客户端插进去数据或显现数据的乱码题目了,但我们立时会发明这类情势的设置只会在当前窗口有用,当窗口封闭后从新翻开 CMD 客户端的时刻又会涌现乱码题目;那末,怎样举行一个一劳永逸的设置呢?在 MySQL 的装置目次下有一个 my.ini 设置文件,经由过程修正这个设置文件能够一劳永逸的处理乱码题目。在这个设置文件中 [mysql] 与客户端设置相干,[mysqld] 与效劳器设置相干。默许设置以下:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
这时候只须要将下的默许编码 default-character-set=utf8 改成 default-character-set=gbk ,从新启动 MySQL 效劳即可。
人人学会了吗?愿望能够解十万火急。
相干引荐:
mysql数据库中文乱码的处理方法汇总
PHP衔接MySQL数据库中文乱码处理方法_PHP教程
mysql数据库中文乱码应当怎样处理,修正设置文件中的字符编码并没有作用
以上就是详解mysql数据库中文乱码题目的细致内容,更多请关注ki4网别的相干文章!