上次给simamy转移空间的时候碰到过
昨天给bianbian安装的时候又碰到了
一开始以为只有升级才会出现乱码
没想到新安装的也有这个问题
关于乱码问题的解释
从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。我读了一下新的MySQL在线手册中第十章”Character Set Support“后终于找到了解决方法并测试通过。
MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:
- SET NAMES 'utf8';
在wordpress中的解决办法
修改wp-includes/wp-db.php
- $this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
- //加上下面这行
- $this->query("SET NAMES 'utf8'");
以上前提是数据库的collation设置为utf8_general_ci
标签:mysql, WordPress, 乱码相关日志

Recent Comments