1、首先通过断点调试看自己的程序是否添加的时候就有乱码,经跟踪发现程序中都能正常显示成中文,程序没有问题
2、那应该就是数据库的问题,首先在数据库中查询数据库的编码格式
mysql> show variables like '%char%';
发现是由于数据库的database的编码格式不正确所致,应该把除了filesystem和sets_dir之外的格式都改为utf8
然后修改my.cnf文件,没有文件就新建一个,但是在修改my.cnf之前一定要关闭mysql!!!不然会出现socket连接问题。
但是在mac中默认没有my.cnf文件,但是在/mysql/support-files/ 下有一个my-default.cnf文件,将它复制到cd /private/etc/这个目录下
3、编辑文件sudo vim my.cnf,按i进入编辑模式,在其中添加
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
然后esc退出编辑模式,再按:wq保存退出
4、再次查看mysql字符集
发现字符集已经全改成了utf8
5、最后再次向数据库中插入一条带中文的数据,发现数据库中的中文已经能正常显示。