几个星期前,就把原来的bearlet.com的域名和tattertools版本的数据全部转移到新域名和wordpress上来。因为用的是tt的xml导入,所以损失了全部的评论。
在wordpress运行了几个星期后,进行数据库备份,发现导出来的数据全部是乱码。再进入phpmyadmin查看,果不其然,字符集居然是latin1_swedish_ci。一阵伤心……用mysql和wp的备份插件导出几次,一直是乱码。只得从头开始分析,再认真看看phpmyadmin,默认的字符集是utf8_general_ci,而wp的数据表是latin1_swedish_ci。结合DZ乱码的经验,开始对数据乱码产生原因进行逆向推理,原来utf8的xml数据,在导入的过程中,用的latin1_swedish_ci编码方式,当然是乱码。 知道成因,也就有了解决办法,把乱码以latin1_swedish_ci编码方式导出就可以了。
phpmyadmin和faisun_sql都没有导出的格式选择,disucz5.5自带的后台备份功能很强大,但我还没有勇气去把他单独提取出来,最后在网上找了帝国备份王,后来证明我是对的。帝国备份王在导出文件的时个可以选择编码格式,默认编码是gbk/utf8/gb2312/big5,打开文件,用editplus批量查找big5,在big5后面加上了latin1_swedish_ci,最终导出没有乱码的数据,对导出的数据进行最后的编辑,将latin1_swedish_ci用批量查找替换软件CharFind全部替换成utf8,数据备份告一段落。
得新上传安装一个wordpress,把修改的数据重新用帝国备份王恢复到wp,如果数据结构正确就一切OK了。我的是TT转过来的,再经过乱码一折腾,本来就缺胳膊少腿的数据就更不全了,对照完整的WP结构,手工修补,半个小时才结束。装装插件,改改postslug。
最后还是在akismet那边卡住了。通过POST页提交的评论总是乱码。而用AJAX comment editor 修改的评论和在后台修改都是正确的。不得已只好暂关闭,继续寻找好的方法。