刚建这个站的时候,导入数据后就出现乱码,找到桑林志的这篇MySQL 4.1x 中文乱码问题,首先把PHPMyAdmin上的MySQL连接校对(MySQL connection collation)改成utf8_general_ci,解决PHPMyAdmin的显示问题,然后在wp-includes/wp-db.php文件里加了这行$this->query("SET NAMES 'utf8'");解决wordpress里的显示问题。
这篇文章讲了MySQL 4.1的字符集支持:
MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
我进PHPMyAdmin看了我的MySQL系统参数:
| character set client | utf8 |
| character set connection | utf8 |
| character set database | gbk |
| character set results | utf8 |
| character set server | gbk |
| character set system | utf8 |
| collation connection | utf8_general_ci |
| collation database | gbk_chinese_ci |
| collation server | gbk_chinese_ci |
而且看了各个表的结构,整理(Collation)全是gbk_chinese_ci。我不太懂这个是什么意思,但是我试着建了一个链接,用字符映射表找了个阿拉伯文字符放上去,结果在Wordpress里显示成一个问号,通过PHPMyAdmin查看数据库发现也是乱码。我把wp_links表里一个一个都改成utf8_general_ci后再存进这个阿拉伯文字符,发现两边都正常了。所以我觉得,这个整理(Collation)是指数据最终在数据库里存储的编码方式,由于选择的是gbk_chinese_ci,所以阿拉伯文字符存不上,改成utf8_general_ci就一切OK了。
本文共有 0 条评论