公司新配置服务器,没有PHP环境,下载了个PHP5.5.25,配置完毕后,从另外一个服务器转移了一个DEDECMS做的网站,安装后,进入后台,恢复数据发现参数设置里的文本框,只要是中文信息,没有显示,或者新添加的中文信息没有显示,查找原因,DEDE中有些字符串在经 htmlspecialchars 函数转义之前正常,而在转义之后却变成了空字符串。PHP 从 5.4.0 版本开始第三个参数字符串编码的默认值改成了 UTF-8,而DEDE代码中的中文编码正好是 GB2312 编码的,跟现在的默认参数不一致,
解决方法:
一、可以把服务器重新配置到 PHP5.4以下的版本;
二、可以为了与旧环境兼容,在用到htmlspecialchars的时候,这样处理:
$str_converted
= htmlspecialchars(
$str
, ENT_COMPAT ,
'GB2312'
)