部分同学安装集成环境时(如wampserver),没有对配置文件进行设置,在新建MySQL数据库时,数据库的默认编码是latin1
![2dd063bcbf053a6b487513564d1adbff.png](https://i-blog.csdnimg.cn/blog_migrate/c786fcde48b0d43be84bce954a5f1120.jpeg)
MySQL默认编码
针对此问题,解决方案如下:
一、未雨绸缪,安装集成环境时即对my.ini配置文件进行设置
1、打开my.ini配置文件
![3c8db5ede060c92dc11d42b9c2e9d880.png](https://i-blog.csdnimg.cn/blog_migrate/34ae57a1ca3fafdb3f2b6a5bdb64e67f.jpeg)
在wamp打开my.ini
2、修改my.ini配置文件
在文件末尾找到[mysql]并将default-character-set=latin1 改为 default-character-set=utf8(部分系统下连default-character-set=latin1 都没有,可以直接添加default-character-set=utf8)
在文件末尾找到[mysqld]并将character_set_server=latin1改为character_set_server=utf8(部分系统下连character_set_server=latin1 都没有,可以直接添加character_set_server=utf8)
![91a1e6ae7e8eb4d4f6d04d61797f5913.png](https://i-blog.csdnimg.cn/blog_migrate/345bb3a64b78edff708628de14108666.jpeg)
修改my.ini
3、重启wampserver,点击wamp图标→Restart All Services
![c564f64951c00f5fba2f1f7b93b52315.png](https://i-blog.csdnimg.cn/blog_migrate/f45f8ba59f51bbd8670b948af0c0b8bd.jpeg)
重启wampserver
二、my.ini没有配置,但创建数据库时指定数据库的编码方式
create database yourDB CHARACTER SET utf8;
三、亡羊补牢,没有提前配置前两种情况就已经创建了数据库,也创建了表
1、先完整执行上面的第一部分,设置my.ini配置文件
2、修改数据库的编码方式,在MySQL console命令窗口中运行:ALTER DATABASE `***` DEFAULT CHARACTER SET utf8;其中***为你的数据库名称,***旁边不是引号,而是ESC按键下面的间隔符号 `
![8db93b77fe309ca90c6961515e7437c2.png](https://i-blog.csdnimg.cn/blog_migrate/ed5ba0ff48d7ec179b6b57add1ef3865.jpeg)
运行红框中的命令
3、修改数据表的编码方式,在MySQL console命令窗口中运行:alter table XXX convert to charset utf8;其中XXX是你的数据表名称
![26de487aaea9b8e0a1fc77bf32b0b5fc.png](https://i-blog.csdnimg.cn/blog_migrate/230a93ee6a356943f4ca08928cc18452.jpeg)
运行红框中的命令
4、尝试插入中文数据,大功告成!
![f6035c21224a559e6643f58e252f76e5.png](https://i-blog.csdnimg.cn/blog_migrate/7fda932602d5a4db927c5a0ab1b93674.jpeg)
尝试插入数据
备注:网络上有很多解决方法将数据库编码方式改为gbk,而不是本文的utf8,这种修改方式在MySQL console是可以满足需求正常插入中文,但是后期从事网页开发时,网页的编码方式若设置成gbk则可能显示为乱码,若网页编码方式设置成utf则与数据库gbk编码方式不符合,mysqli操作数据库则会出现错误,所以本文建议将数据库的编码方式也设置成utf8.