Andy's Blog » wordpress数据库编码 » [原创]WordPress数据库编码完美修正方案

[原创]WordPress数据库编码完美修正方案

WordPress数据库编码完美修正方案

今天对wordpress2.0.4进行完美的编码修正,我的测试环境:
  • php5.x
  • mysql5.x
  • apache2.x

我在将环境升级以后,发现phpmyadmin中看到的中文内容都是乱码.导出后也是乱码.不过用wordpress的WordPress Database Backup 1.7进行备份,却是正确的中文.
我的数据库已经使用了正确的utf8_general_ci
摸索了一下午,解决方法如下:

全新安装WordPress 修正办法:
1.新建数据库时,使用utf8_general_ci编码
2.修改wp-includes/wp-db.php, 在第43行

$this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);

之后加入一行

$this->query("SET NAMES 'utf8'");

这样,在你发表文章或修改设置时的中文内容,由于设定了正确的MYSQL编码连接,数据库里的内容编码才会是正确的.

已安装WordPress 解决办法:
1. 用WordPress Database Backup 1.7进行数据库备份.用EDITPLUS之类的软件打开查看,确保看到的是中文.
2. 新建一个utf8_general_ci编码的数据库
3. 用PHPMYadmin导入或其他工具导入,注意: 导入完成后,在PHPMYADMIN里所看到的内容,不能是乱码.导入时,编码选择 UTF8
4. 修改wp-includes/wp-db.php, 在第43行

$this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);

之后加入一行

$this->query("SET NAMES 'utf8'");

经过以上修改,就完美了.
本站也将发布修正版本供大家下载.

建议大家使用MySQL 4.1以上版本对数据库,学习一下编码方面的内容,养成良好的程序编写习惯.

关于编码方面的文章,大家可以看看
http://www.21andy.com/new/20060513/288.html
http://www.21andy.com/new/20060514/297.html

本文由WordPress中文网http://www.wordpress-cn.com原创,转载请注明出处.

作者: Andy


Incoming search terms:

Tags: 编码

本文地址: http://www.21andy.com/new/20060918/439.html

13 评论 to “PHP开源CMS之MODx”

  1. frogjy 于 2006-09-20 21:35:41 发表:

    niu x

  2. zuozi 于 2006-09-25 23:44:54 发表:

    用WordPress Database Backup 1.7备份,有一部份是乱码,那怎么办???

  3. zuozi 于 2006-09-25 23:45:48 发表:

    再得加上“$this->query(”SET NAMES ‘utf8′”);”这条命令,程序运费错误!

  4. andy 于 2006-09-26 01:47:13 发表:

    请注意符号,不要照抄.
    $this->query("SET NAMES 'utf8'");
    这样就对了

  5. andy 于 2006-09-26 01:48:22 发表:

    我的BLOG自动将小分号和大分号给转了,所以你自己改一下.

  6. zuozi 于 2006-09-26 09:08:29 发表:

    我用WordPress Database Backup 1.7从旧数据库里备份出来的字符编码latin1,怎样才可以改变成UTF8呢?并且备份文件一部份为中文,部份为乱码!比喻分类是乱码的,但留言与文章是中文,但有一些原是中文名的留言ID又是乱码?并且用PHPMYADMIN导入时总是中途停了,可能是数据太大了,有什么好的方法可以解决我这样的问题呢?我的新数据库已是utf8_general_ci编码.谢谢andy了

  7. zuozi 于 2006-09-26 11:05:00 发表:

    一个早上上来看了10次,还是没有回复,呵呵,急!

  8. Andy 于 2006-09-26 15:53:48 发表:

    备份:不管用什么工具导出,确保最终是正确的中文.如果不是,自己想办法修复.然后可以用EDITPLUS另存为UTF8编码的.
    恢复:请使用MYSQL4.1以上版本,导入后确保在PHPMYADMIN里看到的是中文.其他工具有很多,比如faisunSQL或命令行.

  9. 信息频道@中文环球网.com » links for 2006-10-08 于 2006-10-14 20:50:57 发表:

    [...] WordPress数据库编码完美修正方案 - Andy’s Blog [...]

  10. 卖克老猪的部落格 » 文章归档 » WordPress数据库编码转换 于 2006-11-05 22:46:59 发表:

    [...] 经过查看许多网志(Andy、佐仔、土路托、桑椹等)后终于知道,这是由于 wordpress 自身默认使用的 Latin1 在作怪。要想使得数据库内中文内容正常显示,我们就得把它转换成 utf8 编码。这个过程很简单,只需要下面简单的几步: [...]

  11. fen 于 2007-02-16 21:11:14 发表:

    如果不能建立一个新的数据库,而数据库的编码也不是utf8_general_ci,请问该怎么解决?

  12. Apex Blog » Blog Archive » WordPress数据库编码完美修正方案 于 2007-03-09 17:55:12 发表:

    [...] 全新安装WordPress 修正办法: 1.新建数据库时,使用utf8_general_ci编码 2.修改wp-includes/wp-db.php $this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword); 之后加入一行 $this->query("SET NAMES 'utf8'"); 这样,在你发表文章或修改设置时的中文内容,由于设定了正确的MYSQL编码连接,数据库里的内容编码才会是正确的. [...]

  13. 升级WordPress 2.0.5乱码解决 | 佐仔志 于 2010-06-15 11:07:50 发表:

    [...] 如果你之前做个WordPress的mysql数据库编码转换的话,那你升级WordPress 2.0.5时中文部份全都会显示成?号。如果你按照土路的世界写的”mysql数据库编码转换之道“和Andy写的“WordPress数据库编码完美修正方案”或我写的”WordPress的mysql数据库编码转换之绝路招式!“的方法转换了数据编码的,那在你升级WordPress 2.0.5后还要做以下一步工作。 [...]