eGroupWare

如何修复eGroupWare邮件乱码问题

程序: eGroupWare
版本: v1.0.0.009
问题: 邮件显示标题和内容均为乱码。此现象应该会出现在所有使用东亚文字的该系统中。
文件: email/inc/class.mail_msg_base.inc.php
函数: htmlspecialchars_encode($str, $charset='')
行数: 5188-5191左右


改写为:
1 if (!$charset)
2 {
3 $charset = "gb2312"; // 修改,仅对中文简体有效
4 }
5 $str = mb_convert_encoding($str, "UTF-8", $charset); // 新增
6 $str = htmlentities($str, ENT_QUOTES, $charset);

[补充说明1] 该bug同样出现在eGroupWare v1.0.0.007中。Deminy所提供的是一个治标的方法,并未全面研究email部分代码,只解决了邮件阅读时的乱码的问题,但未解决发送的邮件中的乱码问题。

[补充说明2] 该系统多处调用函数htmlspecialchars_encode时,并未使用第二个参数,导致该系统的邮件部分并未能实现真正的支持多语言。

类别: