我有一个博客(基于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”标签中打开同一页面时这个工具。 BUT !!
<!DOCTYPE html><!-- HTML 5 -->
<!
。所以,考虑到所有事情,为什么&amp;从哪里得到这些“奇怪的符号”?
答案 0 :(得分:19)
我找到了问题的根源。一般规则是:
如果有任何(绝对任何!)文件参与构建 最终HTML页面的代码(要发送给客户端的代码)具有编码 BOM - 最终的HTML页面将是UTF-8-BOM。那就是:你整个网站 应不包含带有BOM的甚至1个文件。
在我的情况下,我的网站总共有1.3K文件。 BOM表只有4个文件:
我被迫将这4个文件中的所有这些文件重新保存为“UFT-8无BOM”,以消除“非空格字符”验证错误。当我这样做(重新保存文件)时 - 错误消失了。