【问题标题】:How to fix "Byte-Order Mark found in UTF-8 File" validation warning如何修复“在 UTF-8 文件中找到字节顺序标记”验证警告
【发布时间】:2011-02-03 00:14:37
【问题描述】:

我有一个在 xhtml 严格文档类型下验证的 xhtml 页面——但是,我收到了这个我试图理解的警告——并且更正了。

只是,我如何找到这个错误的“字节顺序标记”。我正在使用 Visual Studio 编辑我的文件——不确定这是否有帮助。

在 UTF-8 文件中发现警告字节顺序标记。

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

【问题讨论】:

    标签: html css validation


    【解决方案1】:

    对于 Intellij IDEA 编辑器,只需转到文件和文件属性

    【讨论】:

      【解决方案2】:

      您问题的位置部分很简单:byte-order mark (BOM) 将位于文件的开头。

      编辑文件时,VS Code 底部的状态栏会显示当前文件使用的编码:

      单击它以打开带有“使用编码重新打开”和“使用编码保存”选项的命令面板:

      点击“Save with Encoding”获取编码列表:

      选择一种编码会使用该编码保存文件。

      另请参阅 Unicode 网站关于 BOM 和 UTF-8 文件的常见问题解答中的 this note。除了指出该文件实际上是 UTF-8 之外,它没有其他功能。特别是它对字节顺序没有影响(我们有 BOM 的主要原因),因为 UTF-8 的字节顺序是固定的。

      【讨论】:

      • 我本来打算投这个票,但我不小心投了票,两天没意识到,现在它被锁定了,它不允许我更改它......但这对我有帮助修复困扰我的 w3c 警告,无论如何谢谢。
      • @andygoestohollywood: :-) 感谢您的解释,当时我确实想知道为什么有人对答案投了反对票。我可以编辑答案,以便您可以撤消它,但我看不出有任何建设性的改变,我不喜欢将它推到“活动”列表中只是为了推翻投票。我很高兴这有帮助!
      • 对于在当前十年内查看此内容的任何人,File -> Advanced Save Options 前一段时间已从 VSC 中删除。点击右下角的“UTF-8 with bom”,点击“Save with encoding”并选择 UTF-8。
      • 谢谢@Gamma032 - 我已经更新了答案。
      【解决方案3】:

      对于使用 Visual Studio 的人在 2018 年看到 bitbucket 上恼人的红点,只需转到 Visual Studio 的“文件”->“File.cshtml 另存为...”并选择“使用编码保存...”:

      然后它会弹出一个屏幕,以便您可以更改编码,尝试在列表中一直向下查看,直到看到“Unicode(无签名的UTF-8)-代码页65001”:

      在此之后,只需覆盖您的文件并将其上传到您的存储库,BOM 就会消失。

      希望对您有所帮助。 狮子座。

      【讨论】:

        【解决方案4】:

        BOM 有时位于文本内部,而不是在开头 - 如果某个文件已经由 php 使用例如 include_once() 从其他文件组装了一段时间。要删除它,请删除 BOM 之前至少一个字符和 BOM 之后至少一个字符之间的区域(以防万一)。 BOM 的位置可以位于 Internet Explorer 的 F12 Developer Tools 中,也可能位于 Edge 中。它被可视化为黑色菱形/菱形

        Visual Studio 和 WebMatrix 可以保存带或不带签名的文件(在开头)。

        BOM 在验证期间 (https://validator.w3.org/#validate_by_upload) 或在控制台中导致错误 - 可以被视为没有

        的孤立元素,当显然存在时!:

        错误:错误的结束标记头。

        作为第二个 ,当只有一个 存在且一切正确时:

        错误:已看到开始标记主体,但已存在相同类型的元素 打开。

        当BOM或两个BOMS占据第一行且DOCTYPE在第二行时,可以看到整个文档缺少DOCTYPE,并显示类似于此的消息:

        错误:在没有先看到文档类型的情况下发现非空格字符。 预期例如.

        错误:元素头部缺少子元素的必需实例 标题。

        错误:错误的文档类型。

        错误:杂散的开始标记 html。

        错误:杂散的开始标记头。

        错误:此时元素元上不允许使用属性名称。

        错误:元素元缺少以下一项或多项 属性:itemprop、property。

        错误:此时元素元上不允许使用 http-equiv 属性。

        错误:元素元缺少以下一项或多项 属性:itemprop、property。

        错误:此时元素元上不允许使用属性名称。

        错误:元素元缺少以下一项或多项 属性:itemprop、property。

        错误:元素链接缺少必需的属性属性。

        错误:此时元素元上不允许使用属性名称。

        错误:元素元缺少以下一项或多项 属性:itemprop、property。

        错误:此时元素元上不允许使用属性名称。

        错误:元素元缺少以下一项或多项 属性:itemprop、property。

        错误:此时元素元上不允许使用属性名称。

        错误:元素元缺少以下一项或多项 属性:itemprop、property。

        错误:元素标题不允许作为元素主体的子元素 语境。 (抑制来自该子树的更多错误。)

        错误:元素样式不允许作为元素主体的子元素 语境。 (抑制来自该子树的更多错误。)

        错误:错误的结束标记头。

        错误:已看到开始标记主体,但已存在相同类型的元素 打开。

        致命错误:在最后一个错误后无法恢复。任何进一步的错误将 被忽略。

        (https://validator.w3.org/#validate_by_uri)

        以及 IE F12 开发者工具控制台中的消息流:

        HTML1527:应为 DOCTYPE。考虑添加一个有效的 HTML5 文档类型:“”。

        HTML1502:意外的 DOCTYPE。只允许一个 DOCTYPE 并且它必须出现在任何元素之前。

        HTML1513:发现额外的“”标签。每个文档只能存在一个“”标签。

        HTML1503:意外的开始标记。 HTML1512:结束标记不匹配。

        一开始就由一个 BOM 引起的一切。调试器在第一行显示一个黑色菱形。

        使用签名保存但未由 php 组装的文件不会导致此类错误,并且黑色菱形在 IE 调试器中不可见。所以也许 php 会以某种方式转换 BOM。似乎必须将主 php 文件与签名一起保存才能看到。

        这些奇怪的字符出现在与 include_once() 合并的文件的开头和/或边界上,并且在之前没有签名保存文件时不可见。这就是它指向 BOM 参与的原因。

        我在前天开始将我的网站转换为 HTML5 并进行验证时注意到了这一点。

        BOM 还可以在行首创建一个小缩进。两个文件包含相同的文本,但一个带有缩进。

        【讨论】:

          【解决方案5】:

          Linux 中:

          使用 Geany 打开文件。

          在菜单“Dokument”中取消选中“Write Unicode BOM”。

          保存文件。

          【讨论】:

            【解决方案6】:

            我是这样解决这个问题的:

            1. 下载并安装Notepad++

            2. 用记事本++打开文件

            3. 在菜单中选择“编码”并将其设置为“在没有 BOM 的 UTF-8 中编码”

            4. 保存文件,BOM 就会消失。

            【讨论】:

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