Mantis是一个(http://www.mantisbt.org)是一个非常优秀的缺陷管理工具。但安装完成后,如果通过浏览器提交的信息内有中文,则显示时将无法正常显示,不得不说是一个小小的遗憾。那么这是什么原因呢?
在我的另一篇博客(深入探索基于LAMP的Web开发中的页面编码问题)中介绍了apache+php系统中的编码处理过程,而Mantis正式通过优先级最高的header()函数方式强行把页面编码设置为windows-1254(类似于ascii),所以我们通过浏览器输入的中文无法被正确传输到服务器,而显示中文内容时,也不能用正确的编码显示。
知道了原因,那么就可以有办法解决了:
1.把MySQL的编码设置为utf8,即在MySQL的配置文件中设置编码为:
character-set-server = utf8
collation-server = utf8_general_ci
2.修改mantis目录下的core.php文件,在该文件的尾部,有一行
header( 'Content-type: text/html;charset=' . lang_get( 'charset' ) );
将这行代码改为
header( 'Content-type: text/html;charset=utf-8');