ECMall2.3 gbk 在php5.4 中文文字显示不出来或者空白 经查,php升级到5.4版本 内置函数htmlspecialchars有了变化,

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' [, bool $double_encode = true ]]] )

$encoding 参数原来是ISO-8859-1,5.4后默认变成utf-8!

ecmall调用这个函数直接是,htmlspecialchars($string),

如果是gbk编码的话,次函数默认 输出utf编码,所以就输出为空白了。

国内一堆开源程序在5.4下都会有这样的问题,DISCUZ官方也建议用户不要升级到5.4。

解决版本:程序中找到 htmlspecialchars($string),改为htmlspecialchars($string,ENT_COMPAT,'GB2312'); 本次bug仅gbk编码的ecmall程序需要修 改,utf编码程序正常