htmlspecialchars in php not decoding


htmlspecialchars in php not decoding

我有一个应用程序,我按原样存储刺痛,但在发送时,我希望将特殊字符转换为其 HTML 名称,例如< &lt。为了实现它,我正在使用php内置函数htmlspecialchars。

使用此函数输出文本是使用以下代码实现的

$reviewTxt = htmlspecialchars($reviewTxt);
echo $reviewTxt; 

现在,对于 reviewTxt 是"我爱你 <3",它应该产生I loved you &lt;3但应该显示原始文本。就我而言,它I loved you &lt;3显示编码数据。我还尝试粘贴I loved you &lt;3而不是上面的 php 代码,只是为了看看我是否可以获得原始文本,是的,它显示"我爱你 <3"。

不确定我错过了什么,

看起来您正在用 htmlspecialchars()/htmlentities() 编码两次。

这会导致第一个结果的&符号被编码在第二个结果中,从而为您提供一个类似于 I loved you &amp;lt;3 的字符串。

因此,它将显示编码的&,后跟乱码字符串lt;