htmlspecialchars 中文丢失 变空
2014-09-10来源:易贤网

上面有文章已经提到了 htmlspecialchars 在php5.4环境下中文转换为空了

但是今天再次遇到了 htmlspecialchars转换为空,中文显示出来,测试了上次的代码,仍然显示不出来。

中文 ENT_COMPAT 需要转换,但是在部分中文下仍然不能显示 比如"钢镚"二个字

<?php

header("Content-type: text/html; charset=utf-8");

echo htmlspecialchars("htmlspecialcharsabcd中文变空").":end<br>";

echo htmlspecialchars("htmlspecialcharsabcd中文丢失",ENT_COMPAT ,'GB2312').":end<br>";

echo htmlspecialchars("htmlspecialcharsabcd三钢镚",ENT_COMPAT ,'GB2312').":end";

?>

测试,下面的内容输出不出来,结果如下:

htmlspecialcharsabcd中文变空:end

htmlspecialcharsabcd中文丢失:end

:end

找了很多网站网址,没有找到结果,最后只能挨个测试最后找到 htmlspecialchars 中文丢失 的解决方案,那就是 GBK

更换为GBK代码后

<?php

header("Content-type: text/html; charset=utf-8");

echo htmlspecialchars("htmlspecialcharsabcd中文变空").":end<br>";

echo htmlspecialchars("htmlspecialcharsabcd中文丢失",ENT_COMPAT ,'GB2312').":end<br>";

echo htmlspecialchars("htmlspecialcharsabcd三钢镚",ENT_COMPAT ,'GBK').":end";

?>

完美输出

htmlspecialcharsabcd中文变空:end

htmlspecialcharsabcd中文丢失:end

htmlspecialcharsabcd三钢镚:end

在php5.4中还是有很多bug的,感觉不是很稳定,最好还是用老的版本

更多信息请查看IT技术专栏

2026公务员·事业单位培训课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
推荐信息