一直以来 MySQL 下不同的编码都困扰着大家,经常在使用过程中出现乱码的现象,有的则需要对已经存在数据的论坛进行编码转换,下面我们就介绍如何利用 Discuz! 论坛后台的备份恢复功能来对数据库的编码进行转换。

利用论坛后台的备份恢复功能进行编码转换主要是利用了 MySQL 数据库的编码机制来实现的,关于 MySQL 编码机制可以参考:MySQL 编码机制。

在了解了 MySQL 编码机制的基础上,我们在详细说下论坛后台的备份恢复,Discuz! 论坛备份的数据可以是 16 进制的数据,由于英文字符和数字在任何编码下的代码都是相同的,也就是说英文字符和数字没有编码的问题,什么编码下都能显示正常和正常识别。所以我们把数据库中的数据备份成 16 进制编码的数据 (全部是英文字符和数字) 就保证了数据的完整和一致,保存的过程中不存在编码问题。

举例说明从 GBK 编码的论坛转换成 UTF8 编码的论坛:

1 、首先上传一个 UTF8 编码的对应版本的 Discuz! 论坛,对照 GBK 论坛的 config.inc.php 文件,编辑 UTF8 论坛的 config.inc.php 文件,把其中的数据库配置信息配置为连接待转码的 GBK 论坛的数据库,并且把其中的连个参数这样设定:

$dbcharset='utf8';

$charset='utf-8';

  • <P>$dbcharset='utf8';</P><P>$charset='utf-8';</P>

2 、登陆刚才配置好的 UTF8 论坛,进入后台进行备份,都保持默认设置即可,备份完毕后可以直接恢复数据库,恢复完毕后检查是不是论坛的数据库已经转换成 UTF8 编码的了。