我遇到一些麻烦PHP的htmlentities()
/htmlspecialchars()
功能。我将字符串中包含的字符OE(HTML相当于是“& oelig”),但都htmlentities()
和htmlspecialchars()
没有转换这个角色。为什么PHP的htmlentities()不能转换字符?
当我运行get_html_translation_table(HTML_ENTITIES)
看到PHP使用转换表,我注意到,œ
字符缺失,但其他韧带样æ
(æ
)都存在。为什么是这样?我是否有一种不同的方式来转换角色?
仅供参考,我运行PHP 5.3.14和这里的输出get_html_translation_table(HTML_ENTITIES)
:
array(100) {
[" "]=>
string(6) " "
["¡"]=>
string(7) "¡"
["¢"]=>
string(6) "¢"
["£"]=>
string(7) "£"
["¤"]=>
string(8) "¤"
["¥"]=>
string(5) "¥"
["¦"]=>
string(8) "¦"
["§"]=>
string(6) "§"
["¨"]=>
string(5) "¨"
["©"]=>
string(6) "©"
["ª"]=>
string(6) "ª"
["«"]=>
string(7) "«"
["¬"]=>
string(5) "¬"
[""]=>
string(5) "­"
["®"]=>
string(5) "®"
["¯"]=>
string(6) "¯"
["°"]=>
string(5) "°"
["±"]=>
string(8) "±"
["²"]=>
string(6) "²"
["³"]=>
string(6) "³"
["´"]=>
string(7) "´"
["µ"]=>
string(7) "µ"
["¶"]=>
string(6) "¶"
["·"]=>
string(8) "·"
["¸"]=>
string(7) "¸"
["¹"]=>
string(6) "¹"
["º"]=>
string(6) "º"
["»"]=>
string(7) "»"
["¼"]=>
string(8) "¼"
["½"]=>
string(8) "½"
["¾"]=>
string(8) "¾"
["¿"]=>
string(8) "¿"
["À"]=>
string(8) "À"
["Á"]=>
string(8) "Á"
["Â"]=>
string(7) "Â"
["Ã"]=>
string(8) "Ã"
["Ä"]=>
string(6) "Ä"
["Å"]=>
string(7) "Å"
["Æ"]=>
string(7) "Æ"
["Ç"]=>
string(8) "Ç"
["È"]=>
string(8) "È"
["É"]=>
string(8) "É"
["Ê"]=>
string(7) "Ê"
["Ë"]=>
string(6) "Ë"
["Ì"]=>
string(8) "Ì"
["Í"]=>
string(8) "Í"
["Î"]=>
string(7) "Î"
["Ï"]=>
string(6) "Ï"
["Ð"]=>
string(5) "Ð"
["Ñ"]=>
string(8) "Ñ"
["Ò"]=>
string(8) "Ò"
["Ó"]=>
string(8) "Ó"
["Ô"]=>
string(7) "Ô"
["Õ"]=>
string(8) "Õ"
["Ö"]=>
string(6) "Ö"
["×"]=>
string(7) "×"
["Ø"]=>
string(8) "Ø"
["Ù"]=>
string(8) "Ù"
["Ú"]=>
string(8) "Ú"
["Û"]=>
string(7) "Û"
["Ü"]=>
string(6) "Ü"
["Ý"]=>
string(8) "Ý"
["Þ"]=>
string(7) "Þ"
["ß"]=>
string(7) "ß"
["à"]=>
string(8) "à"
["á"]=>
string(8) "á"
["â"]=>
string(7) "â"
["ã"]=>
string(8) "ã"
["ä"]=>
string(6) "ä"
["å"]=>
string(7) "å"
["æ"]=>
string(7) "æ"
["ç"]=>
string(8) "ç"
["è"]=>
string(8) "è"
["é"]=>
string(8) "é"
["ê"]=>
string(7) "ê"
["ë"]=>
string(6) "ë"
["ì"]=>
string(8) "ì"
["í"]=>
string(8) "í"
["î"]=>
string(7) "î"
["ï"]=>
string(6) "ï"
["ð"]=>
string(5) "ð"
["ñ"]=>
string(8) "ñ"
["ò"]=>
string(8) "ò"
["ó"]=>
string(8) "ó"
["ô"]=>
string(7) "ô"
["õ"]=>
string(8) "õ"
["ö"]=>
string(6) "ö"
["÷"]=>
string(8) "÷"
["ø"]=>
string(8) "ø"
["ù"]=>
string(8) "ù"
["ú"]=>
string(8) "ú"
["û"]=>
string(7) "û"
["ü"]=>
string(6) "ü"
["ý"]=>
string(8) "ý"
["þ"]=>
string(7) "þ"
["ÿ"]=>
string(6) "ÿ"
["&"]=>
string(5) "&"
["""]=>
string(6) """
["<"]=>
string(4) "<"
[">"]=>
string(4) ">"
}
如果你输出的页面为UTF-8,你就不需要任何的实体(除'<', '>'和'&')。 – SDC
不错,但是在我的场景中,我插入到数据库表中,而不是在网页上显示。该表不是UTF-8,所以我需要进行此转换。我意识到我可以把这个角色当作一个特例,但我宁愿htmlentities()为我处理它。 –
如果在数据库中使用HTML实体,则不能在HTML以外的任何其他输出媒体中使用存储的数据。那真的是你想要的吗?制作表格utf8,它为您节省了很多麻烦! – knittl