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”,以消除“非空格字符”验证错误.当我这样做(重新保存文件) – 错误消失了.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些