非SGML字符编号6

时间:2012-10-06 09:21:18

标签: php html validation codeigniter sgml

我正在为我正在处理的网站

收到以下验证错误
 Line 1, Column 1: non SGML character number 6

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.…

在FireFox源查看器中,以下行的文本为红色

DOCTYPE
HEAD
META CHARSET
/HEAD
BODY
2 Paragraph tags (that are properly opened and closed.

当我使用Web开发人员FireFox插件并选择“编辑HTML”选项时,会出现一个红点,所有最多<title>的标签都会消失。也没有正文标记,在FireFox源查看器中显示为红色的相同两个段落标记也已消失。换句话说,红色表示某种错误,但我发现源中没有任何错误。

这里显示了表示错误的部分:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>

</head>
<body class="page">

<p>
    <div class="photo-box photo-box-right" id="photo-box-test-image-619">
        <div class="photo-box-photo">
            <img src="http://localhost/assets/uploads/images/logo.png" title="Test image" alt="Test image" />
        </div>
        <div class="photo-box-title">
            <span class="photo-box-head" title="Test image">Test image</span>
        </div>
    </div>
    Qualitative data approximates, characterizes or describes but does not measure the attributes, characteristics, properties of a phenomenon.  Data could take the form of textual transcriptions of interviews, focus groups or dialogues, photographs, audio and video recordings.
</p>
<p>
    <div class="photo-box photo-box-left" id="photo-box-test-image-476">
        <div class="photo-box-photo">
            <img src="http://localhost/assets/uploads/images/sparta.jpg" title="Test image" alt="Test image" />
        </div>
        <div class="photo-box-title">
            <span class="photo-box-head" title="Test image">Test image</span>
        </div>
    </div>
    Quantitative data defines attributes in terms of values with numerical significance and can be represented as matrixes of numbers of responses, maps, tables or graphs.
</p>

我在HTML中看不到任何错误。我在任何普通的编辑器中都没有看到任何隐藏的控制字符(Notepad ++,UltraEdit,Notepad,Wordpad),但我确实在Web Developer工具栏的“编辑HTML”屏幕中看到了它。

以下是我尝试解决此问题的方法:

  1. 重新创建文件并重新输入假定的受影响的行。
  2. 使用各种文本编辑器尝试查看错误的文件。
  3. 删除了文件中最近添加的所有内容和代码,看看这是否随时停止(没有运气......)
  4. 阅读我能找到的关于“非SGML角色”的所有帖子,我可以在这里和Google上找到,似乎没有回答我的问题。
  5. 删除了数据库中的帖子并重新创建(因为这是数据库内容的问题)。没解决。
  6. 将所有表格转换为MyISAM(部分表格,包括内容表格,均为InnoDB)
  7. 检查未从数据库中提取其内容的其他页面是否存在相同的问题(例如联系表单),并且它也是如此。
  8. 在我的数据库和HTML源代码中使用各种字符集和编码,以及我的PHP ini文件。没有影响结果。
  9. 将我所有文本编辑器中的代码页更改为各种类型,以尝试查看此隐藏的非SGML字符。
  10. 根据运行良好的相同版本的CodeIgniter,从其他网站复制所有系统和应用程序文件(不包括明显的更改,如CSS和模板以及修改后的模块)。
  11. 你认为我还能做什么?

    从上面我得出结论,自定义模块(不太可能),CSS样式表,站点之间添加的jQuery库(uniform.js,buttons.js)或者使用的模板和视图都有一些对我的快乐有点兴趣。

    请告知你是否能想到我错过的其他事情......

    谢谢!

    Kobus

    编辑:既然我被允许添加图片,我决定制作一些截图来更好地解释问题。也许它有帮助...我最初认为它可能是标题标签中的空白,但不是那样...... Screenshot 1 Screenshot 2

2 个答案:

答案 0 :(得分:0)

这可能是编码问题。确保文件保存为ANSI或UTF8 WITHOUT BOM标记。 BOM标记可能会导致此问题。

在Notepad ++中,第四个菜单用于编码,您可以在那里轻松更改。

答案 1 :(得分:0)

大家好评,

非常感谢您为帮助所做的一切努力,特别是@MadaraUchiha的耐心和努力。

在我将网站上传到我的网络托管空间后,问题最终得到了解决(感谢@ JukkaK.Korpela建议了这一点),并试图访问该页面。在我的本地开发环境中,CodeIgniter错误屏幕不会显示(必须弄清楚原因),但在我的托管空间中,我清楚地表明错误是什么:

Cannot modify header information - headers already sent by (output started at /usr/www/users/imperoco/demo/application/helpers/bootstrap_helper.php:1)

在另一个文件(CodeIgniter帮助文件)中,<?php标记前面有一个 - 。所以 - 不知何故,当我编辑它时,我一定是添加了一个流氓 - 。删除它,现在页面显示正常。

非常感谢你的时间。现在我知道我的开发环境没有显示错误,我可以努力解决这个问题,以防止下次出现这样的问题。 : - )

亲切的问候,

Kobus