前几天登录phpMyadmin才发现,我的数据库编码有些问题,数据库不是我创建的,虽然MySQL 字符集是utf8,MySQL连接校对也可以选为utf8,但是wordpress创建的wp表的格式却是默认的latin1_swedish,当时也没有细看,只是觉得有点不对劲,页面、数据库都是utf8的,实际纪录的数据却不是的,这样怕将来带来兼容性的问题。果然,当自动备份的数据库发送到我的邮箱时,主题有乱码,因为主题是网站的名称,而我的网站名称里有中文。下定决心要解决一下了,不能拖了。
搜了一下,发现这个问题倒是蛮普遍的,网上很多人问,也有一些人给出了解决办法,找了两个情况差不多的作为参考,就准备动手改了。
第一步:备份。以前从msnspace搬家到WordPress来的时候,可是人工一篇篇搬的,不兼容带来的显示问题还需要一篇篇更改,花了很长时间,现在再也不想了,所以备份作充分点。
备份了三份:第一个就是feed,把所有的文章显示出来(FF好像不行,IE可以),保存生成的xml文件。第二个就是phpmyadmin的导出功能,用EditPlus查看导出的sql文件,果然是乱码。第三个就是WP DB Backup这个插件,可以备份数据库成sql.gz文件,解压缩打开,里面倒是好好的,没有乱码。
第二步:改码。主要参考了这篇文章 ,修改,推荐一下EditPlus这个东东,很不错的。改后用phpmyadmin的导入功能导入sql文件,我没有清空原来的数据,自动覆盖的,之后表项就显示成为了utf8_general,然后再用“操作“功能整理一次数据库成“utf8“。数据库这里弄完了,浏览post,可以直接看到中文的内容。
第三步:加码。就是修改wp-db.php这个文件,不能也没有什么问题的,因为之前的操作都正常,页面显示的都是??,跟别人说的一样,以为加了这么一行代码$this->query(”SET NAMES ‘utf8′”);就可以了,加了之后页面整个都是错误信息。后来看到有人说要注意符号的问题,所以$ ‘ “等符号我直接从其他的代码里复制过来,想想应该没有问题了吧,结果还是一页的错误,甚至删了新加入的那一行代码,恢复到以前的状态也不行,郁闷了。没办法了,又重新下载了wordpress的程序安装包,把wp-db.php覆盖过去,还总算回到了??的页面,这也算一大进步了。
嘿嘿,最后怎么解决的?就一行代码嘛,几个字符而已,又不长,我一个一个地敲进去,注意一下在英文状态下的半角状态就可以了。刷新页面,熟悉的中文字又出来了,整个过程算是搞完了。
Pingback引用通告: wordpress的中文版和中文汉化版 | 失落的神庙