WordPress 2.2发布了,于是就动手把这个Blog升级了一下。但是升级完就郁闷了,中文都是乱码。赶紧Google搜索“MySQL WordPress2.2 乱码 utf8”这几个关键字,找到一个临时解决办法,就是把wp-config.php里面的两行代码注释掉。
//define('DB_CHARSET', 'utf8');
//define('DB_COLLATE', '');
但是这样还是治标不治本,又看了很多帖子,终于把问题解决。
mysqldump --compatible=mysql40 wordpress -p >/tmp/wp-40.sql
mysql>drop database wordpress;
mysql>create database wordpress default character set utf8 collate utf8_general_ci;
mysql -p wordpress --default-character-set=utf8 < /tmp/wp-40.sql
第二步也可以用phpmyadmin直接改数据库
貌似不能直接改吧,重新建数据库并导入数据我倒是用phpmyadmin完成的。
哦 忘了 你是升级过来的 不是首次安装
这样就不行了 因为已经有数据了
[…] 当然如果你有root这样的牛账号,可以直接看小桥的文章。这里–compatible=mysql40参数的意思是导出的数据库兼容4.0.x版本以及以下3.2.x版本的mysql数据库。至于为什么采用这个参数,看这篇文章http://www.elaguan.net/article.asp?id=119,有点长,而且……越看越晕。然后在相关web程序连接数据库query之前要记得先执行一下:SET NAMES ‘utf8′。 […]
[…] 再搜索一下找到一个号称“终极解决方案”,乱码的问题所在是 mysql 的 charset 和 collation 设置不对,查查我的 mysql,charset=latin1, collation=latin1-swedish-ci,的确是有问题,参照“终极解决方案” 建了一个新库,charset=utf8, collation=utf8-general-ci,然后把就数据 dump 到新库里面,修改下 wp-config.php 指向新库,再去掉刚才的两行注释。一刷新发现乱码依旧! […]