HTML验证错误:在DOCTYPE之前找到非空格字符

前端之家收集整理的这篇文章主要介绍了HTML验证错误:在DOCTYPE之前找到非空格字符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个博客(基于wordpress).并尝试通过w3c验证器验证我的一个页面.第一个错误是:
Line 1,Column 1: Non-space characters found without seeing a doctype first. Expected <!DOCTYPE html>.
<!DOCTYPE html><!-- HTML 5 -->

另外,DebugBar(http://www.my-debugbar.com/wiki/IETester/HomePage)同意并在<!之前显示两个不可见的字符当我从这个工具里面的“HTML Check”标签打开同一页面时.但!!
>这行HTML代码来自我的wordpress主题中的文件header.PHP.
>我将此文件从我的主机下载到本地硬盘.
> header.PHP的第一行是<!DOCTYPE html><! - HTML 5 - >
>当我在RJ TextEd(只是高级文本编辑器)中打开header.PHP时,它说:header.PHP的当前编码是没有(!)BOM的UFT-8.
>当我在HEX-viewer中打开header.PHP时,我看到,字节0和1是3c,21 – 所以它正是<!.
所以,考虑到所有事情,为什么&从哪里得到这些“奇怪的符号”?

解决方法

我找到了问题的根源.一般规则是:

If any(absolutely any!) file that take part in construction of the
code of final HTML-page(the one to be sended to client) has encoding
with BOM – final HTML-page WILL BE UTF-8-BOM. That is: you whole site
should NOT contain even 1 file with BOM.

在我的情况下,我有总共1.3K文件组成我的网站. BOM表只有4个文件

> wp-config.php(在站点的根目录中)
> jquery.query.js(在include文件夹中)
> cyr-to-lat.PHP(在插件文件夹中)
> footer.PHP(在主题文件夹中)

我被迫将所有这4个文件中的所有这些文件重新保存为“UFT-8无BOM”,以消除“非空格字符”验证错误.当我这样做(重新保存文件) – 错误消失了.

猜你在找的HTML相关文章