首先登陆mysql数据库查看编码类型配置:
(管理员身份运行cmd)
1. net start mysql
2. mysql -u用户名 -p密码
3. SHOW VARIABLES LIKE 'character_set_%';
默认设置应该是:
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
因人而异,但是一般中文乱码是因为以下这几项默认配置是latin1型字符
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
如果这里的配置都显示是utf8类型那可能原因就是创建数据表的时候数据类型的编码方式没有选对,要存储中文的数据类型要设置uts8编码方式。
我乱码的原因就是因为默认配置为latin1导致的,接下来修改配置:
在mysql下找到my.ini文件,一般是my-default.ini文件,将这个文件复制后命名为my.ini,用记事本打开进行修改。
将[mysqld]下面添加一行:
character-set-server=utf8
也有教程讲添加
default-character-set = utf8
character-set-server=utf8
但是由于版本之间的差别,我的数据库在启动时会有1067的报错,所以只添加上面一行就可以了。
添加后重新启动mysql,查看编码类型,都为utf8类型,且中文显示无误啦。