上面有文章已經(jīng)提到了 htmlspecialchars 在php5.4環(huán)境下中文轉(zhuǎn)換為空了
但是今天再次遇到了 htmlspecialchars轉(zhuǎn)換為空,中文顯示出來(lái),測(cè)試了上次的代碼,仍然顯示不出來(lái)。
中文 ENT_COMPAT 需要轉(zhuǎn)換,但是在部分中文下仍然不能顯示 比如"鋼镚"二個(gè)字
<?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";
?>
測(cè)試,下面的內(nèi)容輸出不出來(lái),結(jié)果如下:
htmlspecialcharsabcd中文變空:end
htmlspecialcharsabcd中文丟失:end
:end
找了很多網(wǎng)站網(wǎng)址,沒(méi)有找到結(jié)果,最后只能挨個(gè)測(cè)試最后找到 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的,感覺(jué)不是很穩(wěn)定,最好還是用老的版本
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄