数据库中的UTF代码在页面上显示时,在提供元后,仍然是UTF形式


UTF code in database when displayed on page, after providing meta, is still in UTF form

我的数据库中有一个用于单引号的 UTF 代码,但是当尝试在页面上显示它时,由于某种原因,它仍然是 UTF 代码,即使我提供了元标记。我做错了什么?

在数据库中: '

页: '

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

在撇号或双引号的情况下,可能需要能够包含此类字符而不会关闭属性。但是您应该首先关心为什么数据库以这种方式存储数据。如果某个脚本正在执行转义,则可能会错误地执行两次转义。双重转义不会是有害的,但它可能会将用户添加的一些无害转义(例如,如果他们想使用<&)变成这些可见代码。

有时,为了安全起见,这种转义可能表明所有特殊字符都被转义(不仅仅是撇号)(例如,将<转义到&lt;中,以便不能使用用户输入的数据添加标签),但双重转义(如示例中所示)可能表明输入已错误地输入到数据库中。如果你&amp;转换回&,这至少不应该是HTML的安全问题,但它可能是真正的XML的安全问题。

此外,仅供参考,代替"UTF 代码"的专有术语是 Unicode 数字字符引用。"UTF-8"、"UTF-16"等是编码抽象 Unicode 字符的不同方法,但数字字符引用提供了一种避免字符在未正确支持 Unicode 的程序中损坏的方法,并且它们还使一些不可见或难以看到的字符可见。