【问题标题】:Byte-Order Mark found in UTF-8 File. W3C Validation Error在 UTF-8 文件中找到字节顺序标记。 W3C 验证错误
【发布时间】:2012-06-21 15:24:18
【问题描述】:

我创建了一个对严格 XHTML 有效并通过验证的网站,但 W3C 验证器告诉我有一个注释(错误):

在 UTF-8 文件中找到字节顺序标记。

众所周知,UTF-8 编码文件中的 Unicode 字节顺序标记 (BOM) 会导致某些文本编辑器和旧版浏览器出现问题。在得到更好的支持之前,您可能需要考虑避免使用它。

但我的文件中没有 BOM。它是在 VS 中完成的直接 XHTML。

服务器添加了吗?我怎样才能摆脱错误?

这很重要,因为它搞砸了语义提取。 http://www.w3.org/2003/12/semantic-extractor.html

【问题讨论】:

    标签: xhtml w3c-validation byte-order-mark


    【解决方案1】:

    您的资源中确实有一个 BOM (EF BB BF)。考虑删除它,也许,使用一些十六进制编辑器。 How do I remove the BOM character from my xml file

    【讨论】:

    • 哪里,你怎么看到的,我看不到。很酷很棒。我不知道如何删除它,因为我看不到它。我试过查看源代码。
    • BOM 不用于显示,因此普通文本查看器/编辑器不会显示。为此使用十六进制查看器。
    • 请问什么是在 windows 中使用的好的查看器,章程从哪里来,是 Visual Studio 还是 Web 服务器..
    • 我找到了一个不错的查看器编辑器。非常感谢你的帮助。知道他们是怎么去那里的。
    • 它们由文本编辑器编写,用于明确告诉任何读取文件的软件有关其编码(在您的情况下为 UTF-8)的目的。
    【解决方案2】:

    W3C 标记验证器不会将 UTF-8 中的 BOM 指示为错误;如果这样做,它本身就是错误的,因为在 UTF-8 数据的开头允许使用 BOM。它发出警告。

    警告严重过时。多年来在相关浏览器中未发现任何问题。相反,BOM 应该被认为是有用的,因为如果例如文件保存在本地(因此 HTTP 标头丢失了,UTF-8 格式的 BOM 让浏览器可以推断出,实际上可以肯定,该文档是 UTF-8 编码的。

    语义数据提取工具不是很新,而且它的方法过于理论化,但它在 UTF-8 数据的开头似乎没有任何 BOM 问题。

    可能是服务器添加了 BOM,或者您的创作工具添加了它。无论哪种方式,它都应该被认为是有用的,而不是一个问题。

    【讨论】:

      猜你喜欢
      • 2011-02-03
      • 2016-02-04
      • 2011-07-13
      • 2021-01-26
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      相关资源
      最近更新 更多