解决MySQL数据库中文乱码(mysqlZt服务)

说明

当我们实使用mysql数据库来进行开发时经常会遇到各种各样的中文乱码问题,这是非常的令人烦恼的,当然百度上也有各种各样的解决方法,那当然可以解决一大部分的问题,而我在学习的过程中却遇到过一个非常奇葩的中文乱码问题(即按照常规教程都无法解决的幽灵问题),最后机缘巧合让我解决了,所以在这里写下来作为学习笔记!

中文乱码问题描述

使用MySQL创建数据库,然后插入数据时发现插入中文数据,在数据库中会乱码,然后使用如下命令查询数据库当前的MySQL默认字符集编码:

show variables like "%char%";

如果显示为:
在这里插入图片描述
则说明MySQL数据库的默认字符编码是latin1;这种字符编码是ISO-8859-1的别名,而ISO-8859-1编码是单字节编码,向下兼容ASCLL,可以支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃,但是由于一个中文字符占用两个字节的内存空间,所以这种编码存储中文时就会出现问题;当我们需要存储中文时就要修改MySQL的默认字符编码,方法有很多,下面先展示最常见的一种:

常见方法

找到MySQL的安装路径,如果忘记了这个路径可以在MySQL服务中找到
在这里插入图片描述
然后打开my.ini配置文件,按照下面操作修改:

在[client]下加入代码:

 default-character-set=utf8

在[mysqld]下修改代码:

character_set_server=utf8

在[ mysql ]下修改代码:

default-character-set=utf8

修改后重启MySQL服务;然后再次使用以下命令查询字符编码

show variables like "%char%";

如果查询结果如下,则修改成功,否则失败!
在这里插入图片描述

第二种方法(mysqlZt服务)

如果你按照第一种方法修改完重启服务之后没有任何变化,或者有变化,但是“character_set_database”和“character_set_server”这两项没有被修改为utf8,则可以尝试一下下面这种方法:
打开服务,观察在MySQL服务旁边有没有一个名为“mysqlZt”的服务,
在这里插入图片描述
如果有,打开它的属性,复制它的可执行文件路径,
在这里插入图片描述
找到该路径下的my.ini文件,按照以下修改,
在[mysqld]下修改代码(如果没有则添加进去):

character_set_server=utf8

在[ mysql ]下修改代码(如果没有则添加进去):

default-character-set=utf8

然后重启MySQL和mysqlZt这两个服务;再查询一下字符编码!你会发现,“character_set_database”和“character_set_server”这两项被修改成utf8了!
以下是我的默认字符编码格式(gbk是因为我的控制台默认使用了gbk,这个可以根据自己的情况修改)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值