WP在高版本MySql下的乱码问题

上次给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连接层上。解决方法是在发送查询前执行一下下面这句:

  1. SET NAMES 'utf8';

在wordpress中的解决办法

修改wp-includes/wp-db.php

  1. $this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
  2. //加上下面这行
  3. $this->query("SET NAMES 'utf8'");

以上前提是数据库的collation设置为utf8_general_ci

标签:, ,

相关日志 随机文章

Comments

Leave a Reply




请输入验证码

Use "<coolcode></coolcode>" to publish your code.

Line breaks and paragraphs are automatically converted.

Please keep comments relevant. Off-topic, offensive or inappropriate comments may be edited or removed.

京ICP备05059555号