唉,在wordpress中文论坛找了半天没人回答,还是自己找解决方法比较好。在中国,求人真不如求己,人心的冷漠到处可见。
我的寂静街除了自己的私人博客外,平时还会为客户和我自己的网店找些插件来测试。几乎所有的wordpress插件都是靠写入数据库来运行的,但并不是所有插件都会使用UTF-8来写入,比如有名下载管理插件"WP-DownloadManager"就是用"latin1_swedish_ci"编码来写入的数据;另外,wp的数据库写入好像也有问题,虽然以UTF-8备份数据库,但备份出的.sql文件打开就会变成乱码,一开始我只是怀疑使用非UTF-8造成的情况,于是将所有数据库的编码都转换成了UTF-8,结果备份出的.sql问题依然存在。
这两个问题令我很恼火,因为我现在只是刚开始使用,数据库才3M就这样了,那我要是以后将所有的教程和一些有用的书籍上传后,30G都有可能,如果那时候出现这种问题怎么办?难道要重新做?幸好及时发现问题,在询问wordpress中文论坛无果后,我自己试了各种文字编辑程序,然后再借助一个插件,成功地解决了这个问题:
首先,下载一个插件:UTF-8 Database Converter,也可以点击这里在wordpress官方下载。
下载->解压缩->上传到ftp ->/plugins ->在插件页激活"UTF-8 Database Converter"。
激活后,在插件页上方,我们点击"UTF-8 Database Converter"项进入,如果你是wp2.5或2.51版,会提示你"WARNING VERSION NOT SUPPORTED",不用担心,经我测试,完全没问题,(安全起见,别忘记备份数据库。)
点击右下角的"Next step",一直会出现好几次,直到出现"finish",点击后,即可完成。
现在看看你的数据库,是不是都是"utf8_general_ci"了呢?
到这里,我完成了第一步,为了不浪费系统资源,我禁用了"UTF-8 Database Converter"。
然后我使用wp数据库备份插件,将数据库备份并下载到电脑中,使用office word 2007打开,这时,word会选择UTF - 8格式打开,(不可否认,office word对字符编码的识别确实很强大,而且功能也很强大,所以我宁愿花费上千元人民币购买office,也不愿使用免费的openoffice。)。使用"EmEditor"新建一个.sql文件,将word中全部的内如复制到该.sql文件中,并以UTF-8编码保存。(注意:"EmEditor"在选用UTF-8编码保存时,会出现一个选项勾"添加一个Unicode签名",将该选择取消打勾)。
然后上传该.sql文件即可。
到此,数据库已经完全转变为UTF-8编码,且无乱码问题了。所说这个方法操作起来很麻烦,但我觉得是最实用切最有效的办法。如果遇到此问题,且搜索到这里的朋友,不妨说说自己的方法。