安装eGroupWare后fudforum乱码问题的解决(转载请注明出处)
作者:王东阳 http://blog.csdn.net/Aryang/
下载了最新的eGroupWare1.0.0.007版本(以下简称egw),安装环境为Solaris,安装选择语言简体中文.安装后发现里面的论坛fudforum(egw里最实用的)乱码.
研究后发现,egw默认安装后生成的html页面为UTF-8编码,而fudforum在安装后生成了两种语言包chinese(简体中文)和chinese_big5,这两种包分别对应的目录是 fudforum/(xxxx数字)/theme/default 和 fudforum/(xxxx数字)/theme/chinese_big5,论坛管理里虽然设置的默认包是default,但实际它读取的是chinese_big5.这块不去追究了,可以手工修改一个地方来决定.
fudforum/(xxxx数字)/index.php 里有一行:
/* theme path */
@define('fud_theme', 'theme/' . ($u->theme_name ? $u->theme_name : 'default') . '/');
我把这个注释掉,换成
@define('fud_theme', 'theme/' . 'default' . '/');
ok了,好了?no!
现在打开还是乱码,问题是左边的系统菜单是utf-8,而右边论坛内容是gb2312,怎么解决,得辛苦一下啦,把
fudforum/(xxxx数字)/theme/default/ 下面所有的php下载到windows,大概四十多个文件,然后用记事本打开,文件,另存为,保存类型选所有文件,编码选UTF-8(注意我用的是XP,2000和98上有没有这个我不知道,当然你也可以找批量转换的工具来用,不过我从网上下了N个都不能用,有那功夫手工都转完了),不改名原文件保存.然后再传回去,这下应该好了.
好消息是看不到乱码了,坏消息是你发现贴的文章里会出现个别字的乱码,咋整?不急,夜我已经替你熬了,经过我对源代码一行行的调试,发现问题是由 post.php 里的一个函数fud_wordwrap造成的,这个好像也没啥用,关掉(别汗啊),关掉的方法是把函数删掉,冷静,我发现系统管理里有个地方可以配置,在论坛的管理界面里有一个设置项:
Word Wrap:
This setting defines on how many character to wrap message bodies on, any text string longer the the number of character in this option will be broken down into 1 or more strings using a space as a separator.
把这个设为0和删掉那个函数的效果一样,我们还是文明些吧,ok,到此解决.