mysql中文乱码的完美解决方案

时间:2023-03-09 13:01:33
mysql中文乱码的完美解决方案

问题描述: 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\ |

+--------------------------+---------------------------------------------------+