林网博客

探讨计算机网络安全 拓展计算机网络应用

« Google无法验证网站几种解决办法301、404、200这些http状态码表示什么意思 »

discuz论坛乱码的又一例解决方法

 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的组合,因为比较少用,这次就没再费神。





本文链接地址:http://www.linwan.net.cn/archives/2795.html
原创文章如转载,请注明:转载自林网博客 [ http://www.linwan.net.cn/ ]

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 通过Google订阅本站
  • 通过抓虾订阅本站
  • 通过鲜果订阅本站
  • 通过bloglines订阅本站
  • 订阅本站到飞豆
  • 订阅本站到哪吒
  • 订阅到有道阅读
  • 通过电子邮件订阅本站

林海谐缘软件区新贴

林海谐缘网络区新贴

联系邮箱:我的信箱地址,Powered By Z-Blog 1.8 Spirit Build 80710

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.