加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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

发布时间:2020-05-25 01:50:45 所属栏目:PHP 来源:互联网
导读:前几天将php升级到5.4,原以为一切都正常运行,不料发现htmlspecialchars函数在php5.4版本之后有点小问题,处理中文字符串没有到达预期效果,结果为空,很迷惑,上网搜索,找到解决办法,在这里向小伙伴分享一下解决的方法。

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

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

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

$str='中文字符串';

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

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

echo$str_converted;

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

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读