微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php升级到5.4后htmlspecialchars处理中文输出空字符串

从旧版升级PHP5.4,恐怕最麻烦的就是htmlspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,htmlentities非常少用到。

前几天将PHP5.2升级到5.4,原以为一切都正常运行,不料发现htmlspecialchars函数PHP5.4版本之后有点小问题,处理中文字符串没有到达预期效果,结果为空字符串,很迷惑,于是开始问度娘,最后在一篇文章中找到解决办法。

PHP 从 5.4.0 版本开始第三个参数字符串编码的认值改成了 UTF-8,而我这段代码中的中文编码正好是 GB2312 编码的,跟现在的认参数不一致,于是更改调用参数如下:

$str = '中文字符串';

# 为了与旧环境兼容,这里第二个参数没有组合使用 PHP 5.4 新加入的 ENT_HTML401 常量

$str_converted = htmlspecialchars($str, ENT_COMPAT ,'GB2312');

echo $str_converted;

这样,“中文字符串”就可以正常显示了。为了使 PHP 5.4 之前环境中编写的代码能够向前兼容,建议调用 htmlspecialchars 函数的的时候都提供字符串编码参数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐