数据库字符编码的设置以及数据库中文乱码的解决方法

时间:2020-12-28 06:35:26

最近在开发过程中,使用到MySQL数据库,而在将中文数据插入到数据库的时候出现了数据乱码的问题,在网上找了很多方法,问了很多人,试了很久才发现网上有的方法是不行的,因此在此记录下,以便他人查找。


查看字符编码

首先,将中文插入到数据库乱码是因为没有将数据库编码设置为支持中文的编码,mysql的默认编码是Latin1,不支持中文,应该设置为utf8查看自己的数据库编码是否已设置好,进入数据库,输入:show variables like "char%",如果出现下面的结果

数据库字符编码的设置以及数据库中文乱码的解决方法

说明你的数据库编码正确,无需修改,应该是页面或者其他编码的问题。如果跟上面的结果不同,说明需要修改数据库的编码。


在windows系统下

1、在mysql的安装目录下找到my.ini文件(如果没有的话就把my-medium.ini复制,然后重命名为my.ini即可)在mysql5.7中是my-default文件。

2、在my.ini文件中找到[client]和[mysqld]字段,在下面均加上default-character-set=utf8,保存并关闭

3、重启mysql服务


Linux系统下

1、打开配置文件,我使用的linux版本是ubuntu,配置文件在/etc/mysql/my.cnf

2、在[client]和[mysqld]字段下面均添加default-character-set=utf8,保存并关闭

3、重启mysql服务


注意:

如果重启成功,并查看数据库编码,如果结果如下

数据库字符编码的设置以及数据库中文乱码的解决方法

恭喜你,说明你已经修改成功了


如果在linux下重启mysql服务的时候出现Job failed to start,在window下重启失败,这是因为你安装了高版本的mysql(mysql5.5以上),在高版本对字符编码方式修改的办法中,在[mysqld]下的修改发生了变化,正确方式如下:

[mysqld]下添加的应该为:

character-set-server=utf8

collation-server=utf8_general_ci

重启mysql,现在再次查看字符编码,如果跟下面一致,说明成功了

数据库字符编码的设置以及数据库中文乱码的解决方法


好吧,以上就是mysql字符乱码问题的解决,自己想记录下来,方便自己以后再次用到或者为别人需要是查阅,如果有错误的地方,请指出,谢谢