XHTML 验证:字符“”序言中不允许。为什么?
为什么此页面无法验证?
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:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据 W3C 验证器
这就是错误的原因:字节顺序标记是零宽度空格,它告诉您序言中不允许使用该字符(在文档类型之前)。
使用文本编辑器重新保存文件,该编辑器允许在没有 BOM 的情况下保存(几乎除了记事本之外的所有内容)。
As per the W3C validator
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).
因为文件发送时带有字节顺序标记。
字节顺序标记用于识别文本文件的编码,但当您通过网络发送文本时不应包含它们。
如果您的网络服务器在发送文件时无法删除字节顺序标记,则您必须保存不带字节顺序标记的文件。大多数编辑器都可以在“另存为”对话框中选择执行此操作。
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.
您的 php 源文件
test.php
包含字节顺序标记。尝试再次保存test.php
而不带字节顺序标记。Your php source file
test.php
contains the byte order mark. Try to savetest.php
again without byte order mark.