Discuz X GBK转成UTF-8的最佳转换方法.

Web网络开发 20/5/7 1.2k 0

Discuz X系列 GBK转成UTF-8的最佳转换方法

1.不管怎么说,数据无价。必须先备份数据 !

全新安装Discuz
2.接下来,我们要去Discuz官网下载UTF-8版本的Discuz(必须要与GBK论坛同版本),并全新安装它到服务器上,最好使用一个单独的子域名,和一个单独的数据库,方便后面操作,注意:数据库前缀最好与GBK论坛一样,当然,如果你无法使用更多的数据库,只能将GBK与UTF安装到同一数据库中,那又另当别论!(后面的操作都是在两个论坛安装在不同数据库的基础上进行的,若两论坛安装在同一数据库内,某些操作可能会出现问题,请务必备份!)

转换数据库编码
3.转换数据库编码的最好方法便是导入导出,首先在Phpmyadmin内将GBK论坛的数据库导出为sql文件,编码选择utf-8,下载到本地后,用软件打开它,查找CHARSET=gbk替换为CHARSET=utf8即可

转换模版与插件

转换好数据库后,论坛并不能直接开始使用,因为GBK论坛使用的插件和模版都不能适用于UTF-8论坛,首先我们需要将GBK论坛的source/plugin目录覆盖到新论坛,再进入新论坛后台“插件”选项,对插件尝试卸载,若能正常弹出卸载提示的插件则不用管,若卸载时提示“插件文件缺失”,则需要重新进入数据库,找到数据表pre_common_plugin(pre是你的表前缀),删除提示“插件文件缺失”的插件,然后再进入后台重新安装(注意:若提示无法安装,请参考此教程修改DZ文件后再尝试安装:http://blog.csdn.net/luxiaoyu_sdc/article/details/7666864)用这种方法进行处理,直至所有的插件都能正常卸载,插件的处理便完成了!注意:若发现有插件在数据表中删除后在后台无法安装,则是该插件不支持UTF-8编码,需要给该插件手动转换编码并增加UTF-8编码的XML,参见:http://www.wanghailin.cn/scka/discuz-plugin-utf/,注意,使用这种方法进行处理后,插件的设置会丢失,大家可以从GBK论坛手动复制插件的设置参数

接下来转换模版,将GBK论坛的template目录下的你使用的模版复制到UTF-8论坛,并将模版下载到本地,将含有中文字符的文件用记事本进行另存为即可,不推荐使用批量编码转换工具对模版进行编码转换,容易出现问题,转换完毕后,重新上传,便可以使用了!

校验是否转换成功
进入新论坛Discuz后台,选择站长-数据库-校验,进行数据库校验,若提示“您的数据库完整无误”则是转换完美成功,否则请将检测出编码不正常的数据表导出,然后用上面的替换法转换编码后,删除数据库中的对应数据表,再导入即可!


至此,整个转换过程便结束了!若到此处都还没有出现问题,那么老论坛的备份就可以删除了,删除老论坛的数据表和程序文件后,新论坛便可以复制到老论坛所在的目录,不过我个人觉得数据库是没有必要更换的,删掉老论坛的数据库就行,注意:若迁移涉及到域名的变化,一定要到后台修改Ucenter的通信地址,进入Ucenter看到通信成功,即为迁移成功!(由于UC的数据库也被恢复,通信密钥可能为老论坛的,请注意更换,否则无法通信成功)

由于UTF-8和GBK论坛的部分数据表有结构上的不同,这样硬转换后可能导致部分功能不正常,如设置个人资料,转换后极其有可能出现问题,请参考此贴方法解决(Discuz! X3测试通过):http://www.discuz.net/thread-2536784-1-1.html

这种转换方法成功率非常高,但是稍显麻烦,对站长朋友的技术基础也有一定要求,小白站长还是不要尝试了,这种方法转换后,后台设置基本能够比较完整的保存下来,用户名等也不会出现乱码(至今我还没有发现任何地方有乱码情况的出现),不过转换极小部分后台数据会造成丢失,不过并不影响正常使用,只需简单设置即可!


请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
您需要登录后才可以回帖 登录 | 注册
本版积分规则