意外的发现。在做PHP开发的时候。读写数据库之前总要 set names * 某个编码,预示客户端 是以什么样的编码来进行数据库的读写。这个是知道的。
但今天在导数据库的时候发现个细节,记录下
mysql> show variables like 'character%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | ascii |
| character_set_connection | ascii |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | ascii |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
默认的 character_set_client 客户端 编码是 ascii 的
然后我显示中文就乱码了
然后我。 set names gbk 以后
再看
mysql> show variables like 'character%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
变成了 gbk 了。然后 在查看中文。就正常了。。