XHTML 验证:字符“”序言中不允许。为什么?

发布于 2024-12-09 16:28:42 字数 932 浏览 0 评论 0原文

为什么此页面无法验证?

http://www.jethroweb.nl/test/test.php

我认为XHTML 代码没问题,但是 W3C 标记验证服务WDG HTML 验证器 不同意。

更新:XHTML 代码是由 PHP 生成的,这是代码的第一行:

echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"';
echo PHP_EOL;
echo '        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
echo PHP_EOL;
echo '<html xmlns="http://www.w3.org/1999/xhtml">';
echo PHP_EOL;
echo '<head>';
echo PHP_EOL;

UPDATE2:也许这更多是一个 PHP 问题。当我将生成的 XHTML 代码粘贴到 Notepad++ 中时,我在第一行看到一个问号:

在此处输入图像描述

Why doesn't this page validate?

http://www.jethroweb.nl/test/test.php

I think the XHTML code is okay, but the W3C Markup Validation Service and the WDG HTML Validator do not agree.

UPDATE: The XHTML code is generated by PHP, this are the first lines of code:

echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"';
echo PHP_EOL;
echo '        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
echo PHP_EOL;
echo '<html xmlns="http://www.w3.org/1999/xhtml">';
echo PHP_EOL;
echo '<head>';
echo PHP_EOL;

UPDATE2: Maybe it's more a PHP question. When I paste the generated XHTML code into Notepad++ I see a question mark at the first row:

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

世态炎凉 2024-12-16 16:28:42

根据 W3C 验证器

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

已知 UTF-8 编码文件中的 Unicode 字节顺序标记 (BOM) 会给某些文本编辑器和旧版浏览器带来问题。您可能需要考虑避免使用它,直到它得到更好的支持。

这就是错误的原因:字节顺序标记是零宽度空格,它告诉您序言中不允许使用该字符(在文档类型之前)。

使用文本编辑器重新保存文件,该编辑器允许在没有 BOM 的情况下保存(几乎除了记事本之外的所有内容)。

As per the W3C validator

Byte-Order Mark found in UTF-8 File.

The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported.

That's the reason for your error: the byte order mark is a zero-width space, and it's telling you that character isn't allowed in the prolog (before the doctype).

Re-save the file with a text editor that allows saving without a BOM (virtually everything except Notepad).

童话 2024-12-16 16:28:42

因为文件发送时带有字节顺序标记。

字节顺序标记用于识别文本文件的编码,但当您通过网络发送文本时不应包含它们。

如果您的网络服务器在发送文件时无法删除字节顺序标记,则您必须保存不带字节顺序标记的文件。大多数编辑器都可以在“另存为”对话框中选择执行此操作。

Because the file is sent with a byte order mark.

The byte order mark is used to identify the encoding for text files, but they should not be included when you send the text over the web.

If your web server can't remove the byte oder mark when it sends the file, you have to save the file without the byte order mark. Most editors have the option to do so in their Save As dialog.

如何视而不见 2024-12-16 16:28:42

您的 php 源文件 test.php 包含字节顺序标记。尝试再次保存 test.php 而不带字节顺序标记。

Your php source file test.php contains the byte order mark. Try to save test.php again without byte order mark.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文