discuz论坛wap浏览无中文解决方法
2009年2月17日
没有评论
一个兄弟网站的discuz论坛换了台新的服务器,从apache换到了nginx结果发现换了之后wap访问论坛出来的页面没有任何中文字(英文还是存在的)。我在看了之后一开始以为是wap程序php取数据库编码的问题。后来做了几次修改尝试后发现并非数据库输出内容无中文,而且经过和我们的对比发现连普通的静态内容的中文也都是没有的,一下子就想到问题出在了php上面,于是安装wap下面原来的index.php输出方式手写了一个临时php调试,发现php输出都没问题,有乱码出现,看来问题出在编码转换上面。于是自己看了下discuz的编码转码的库文件chinese.class.php,发现这台新服务器是启用iconv函数的,里面检测到了iconv然后使用iconv函数进行编码转换,忽然想到可能是系统iconv函数库的问题。于是找的了判断iconv的代码:
1 2 3 4 5 6 7 | if(function_exists('iconv') && $this->config['TargetLang'] != 'BIG5' && !$ForceTable) { $this->iconv_enabled = true; } else { $this->iconv_enabled = false; $this->OpenTable(); } ...... |
修改了这段代码绕过了iconv检测,强制设为不存在iconv的方式处理编码转换。
1 2 | $this->iconv_enabled = false; $this->OpenTable(); |
然后测试果然中文又回来了。