我使用htmlspecialchar来转义页面上呈现的用户输入(这样If you want bold text, wrap it around a <b> tag like <b>this</b>
的用户输入实际上就是这样呈现的,而不是将<b>
解释为实际的html并将tag like this
文本加粗。
htmlspecialchars在这里工作得很好,但似乎错误地将UTF8字符呈现为htmlentity数字代码。例如,不赞成的表情ಠ_ಠ
在经过该功能后呈现为ಠ_ಠ
。
我应该怎么做才能正确地转义常规html,但仍然允许用户使用特殊的UTF8字符?
您设置了正确的编码吗?
utf8字符是否可能已转换为ಠ;符号;?如果您在该字符串上再次调用htmlspecialchar,则&变成&因此不再是utf8码,这可以通过将双重编码参数设置为false来防止。请参阅php.net上的文档:
http://php.net/htmlspecialchars