2007年2月4日星期日

CTeX 论坛从 IPB 转换到 Discuz!

在经过一段时间测试、熟悉 Discuz! 后,昨天把 CTeX 论坛从 IPB 转换到了 Discuz!。
从 IPB 到 Discuz! 本身并不太难,Discuz! 论坛上提供了转换工具。问题是原来的 IPB 论坛数据库中存放的是 latin1 编码,而 Discuz! 用的是 gbk 编码。于是根据网上查到的方法,把数据库做了转换。基本过程是:

mysqldump -uctex -p --default-character-set=latin1 --set-charset=gbk ctex_ipb > ctex_bbs.sql

这一步是把数据库导出到 SQL 文件中,ctex_ipb 是论坛的数据库名字。然后用文本编辑器打开 ctex_bbs.sql 文件,把所有的 CHARSET=latin1 改为 CHARSET=gbk。同时把原来 IPB 的一些帖子中的链接方式改为 Discuz! 的方式,因为帖子的 id 不会变化,所以只要把前面的 URL 替换就行了。然后再导入到数据库中:

mysql -uctex -p --default-character-set=gbk ctex_test < ctex_bbs.sql

这里的 ctex_test 是临时建立的一个数据库。编码转换是否成功的一个判断方法就是用 phpMyAdmin 直接查看帖子数据,如果能看见正常的中文,就是转换正确了。

最后用 IPB 到 Discuz! 的转换工具从这个临时数据库转换到 Discuz! 数据库。

当然也可以通过修改 Discuz! 设置的方法来使得它支持 latin1 编码的数据库,可是采用 gbk 编码有很多好处的,例如可以直接用 phpMyAdmin 来检查、修改数据了。