discuz论坛系统占领中文论坛的大半壁江山,无疑,它的功能和发展,是非常优秀的,当然,不能称最,因为,搜索林网博客就知道,林网博客对他颇有微词。以前也曾经讨论过有关discuz论坛乱码的话题,比如:[终于找到了解决discuz乱码的方法了] [phpwind转换discuz后前台乱码的一点说明] [Discuz!4.0及以上版本由UTF8转GBK的详细教程【告别乱码,拥抱插件】] 等,今天暂且剖开以前的说法,另外再说一些小窍门,算得上“歪门邪道”的解决方法吧。
在建立数据库的时候,默认建立好的空数据库目录下都有一个db.opt的文件,用记事本打开,一般是两行下列代码:
default-character-set=latin1
default-collation=latin1_swedish_ci
我当时处理这个论坛数据时,是没有进行安装论坛那一步的,只是下载一个新的discuz6论坛程序,然后新建一个数据库(此时用的是mysql4.0版本),然后把以前的那个数据库直接就全部拷贝进去了,配置好数据库连接(config.inc.php),就开始运行。这时,反映论坛数据乱码,从表面现象可以看出来,这乱码是数据库输出的数据。打开db.opt文件,然后把default-character-set=latin1修改了一下,default-character-set=gbk,然后刷新论坛,发现论坛输出的数据库数据已经正常。
由于要上传到正式服务器上时,现在的正式服务器mysql服务很多都是mysql5.0以上的版本了,因此,我把这个数据库直接拷贝至5.0的数据库data目录,运行论坛,发现还是乱码,这时,不管是把db.opt文件中的default-character-set改为gbk还是latin1,都是乱码;还是有办法解决的:
修改config.inc.php文件:
$dbcharset = ''; // default database character set, 'gbk', 'big5', 'utf8', 'latin1' and blank are available
(一般的MySQL数据库默认编码是latin1,现在MySQL由4.0.27-standard升级到了5.0.24)
我把其中的
$dbcharset = '';
改成
$dbcharset = 'latin1';
然后再次刷新论坛,论坛输出数据已经正常,虽然title和首页底部的会员等级有些乱码,这不影响,这是缓存引起,在管理后台更新缓存即可。
简单说了这个小方面,综合解决,参考林网博客开篇的几篇文章,一般都能解决论坛乱码问题。事实上,数据库高手解决起来这些,不算什么,声明,我不是,我只是个小玩家,摸索倒腾了一些小窍门,自己窃喜而已。另:测试时用的工具是:APMServer 5.2.0。非常好用,推荐。也有不少有关LightTPD-1.4.16-Win32的组合,因为比较少用,这次就没再费神。








,Powered By Z-Blog 1.8 Spirit Build 80710