建好表之后,插入中文数据乱码:
1.查看数据库的编码集:
show variables like 'character_%'; 显示如下编码字符集信息:
mysql> show variables like 'character_%';
±-------------------------±--------------------------------------------------------+
| Variable_name | Value |
±-------------------------±--------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
±-------------------------±--------------------------------------------------------+
8 rows in set (0.00 sec)
把上面的数据库编码字符集改为 utf8,依旧乱码没有解决。
2.问题出在cmd客户端窗口:
因为客户端窗口采用GBK编码格式,而数据库编码格式为UTF-8,编码不一致
导致的乱码,可以使用如下命令来设置与客户端相关的编码集:
set names gbk;
设置完成后可以解决客户端插入数据乱码问题,这种解决方式只适合当前窗口,
窗口关闭后又会出现同样的问题。所以下面是第三种解决方式,也是最终解决方式
3.修改C:\Program Files\MySQL\MySQL Server 5.5/my.ini文件:如下
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=gbk
修改为如上所示,问题得到解决。Ok,希望可以帮助到大家