在启动另一个实体时除了&符之外的htmlspecialchars

时间:2018-01-05 14:30:26

标签: php html

我正在使用htmlspecialchars从管理网络表单打印非HTML数据。问题是HTML实体和类似®的unicode字符/符号打印®或★由于&符号被转换而打印为★

我知道我可以用&替换所有&以解决此问题,但仅在打印&符号时这是不合适的。

转换特殊字符的好方法是什么,除了符号之前的&符号外?

1 个答案:

答案 0 :(得分:1)

听起来你有一个已经部分编码的字符串。再次编码会导致您描述的问题。

要解决这个问题,您可以先解码字符串,然后再对其进行编码:

$encoded_string = htmlspecialchars(html_entity_decode($partially_encoded_string));

修改:如果所有字符都需要编码,则可以使用htmlentities()代替:

$encoded_string = htmlentities(html_entity_decode($partially_encoded_string));