htmlspecialchars 中文丟失 變空

字號(hào):


    上面有文章已經(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)定,最好還是用老的版本