显示时未转换撇号数字字符引用?

时间:2014-02-27 19:45:11

标签: php html html-escape-characters

出于安全原因,我将以下字符串从数据库'86中拉出并通过转义函数运行,因为这是用户定义的数据:

htmlspecialchars($string, ENT_QUOTES, 'UTF-8');

我得到的回报是'86

所以htmlspecialchars正在逃避撇号并将其​​转换为numeric character reference(而不是character entity reference,我猜是因为没有撇号)。

我遇到的问题是,当文本显示在浏览器上时,浏览器不会将其显示为',而只是打印'86。查看页面的来源确认它也来自'86(所以它不是双重编码的)。我尝试了几种浏览器。

服务器的内容类型标头已正确设置为text/html; charset=utf-8

为什么它不能正确显示的任何想法?

1 个答案:

答案 0 :(得分:1)

跳过枪,看起来它实际上是'86输出的。我正在查看Chrome中的Web检查器,而不是实际查看页面源。网络检查员正在将&转换为&,导致我的困惑。