上面有文章已经提到了 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技术专栏