![mysql中文乱码的完美解决方案 mysql中文乱码的完美解决方案](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
问题描述: mysql插入中文时显示为乱码或"?"号
解决方案:
修改mysql的my.ini配置
[mysql] default_character_set=utf8 [mysqld] character_set_server=utf8
千万注意:
my.ini配置完成之后不但要重启服务,而且要重建所有存在乱码的数据库,是的,不是表,而是整个库,所以最好从一开始就处理好中文乱码问题,否则必将万劫不复!
//以下内容为测试记录内容,完全可以忽略不读,但为了增加可信度,还是附上了:)
show variables like "%char%";
默认:
+--------------------------+---------------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | c:\wamp\bin\mysql\mysql5.6.17\share\charsets\ |
+--------------------------+---------------------------------------------------+
(本次启动有效,治标不治本)
set names utf8:
+--------------------------+---------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | c:\wamp\bin\mysql\mysql5.6.17\share\charsets\ |
+--------------------------+---------------------------------------------------+
(永久有效)
my.ini
[client]
default_character_set=utf8
+--------------------------+---------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | c:\wamp\bin\mysql\mysql5.6.17\share\charsets\ |
+--------------------------+---------------------------------------------------+
(永久有效,效果同[client]修改)
my.ini
[mysql]
default_character_set=utf8
+--------------------------+---------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | c:\wamp\bin\mysql\mysql5.6.17\share\charsets\ |
+--------------------------+---------------------------------------------------+
(永久有效,中文完美显示,避免了每次Insert数据前都先要set names utf8一下)
my.ini
[mysql]
default_character_set=utf8
[mysqld]
character_set_server=utf8
+--------------------------+---------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | c:\wamp\bin\mysql\mysql5.6.17\share\charsets\ |
+--------------------------+---------------------------------------------------+