【发布时间】:2014-01-18 18:46:59
【问题描述】:
我不想通过此网站的验证:
http://www.mundo-satelital.com.ar/
但我似乎无法修复文件开头的奇怪字符。 W3 验证服务会自动将我的页面检测为 iso-8859-1,尽管我可以从 Firefox 的控制台看到正在传递的标头是 Content-Type text/html; charset=utf-8 并且我的 <head> 包含
<?php header('Content-Type: text/html; charset=utf-8'); ?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
看来我正在寻找的是一个杂散的 BOM 字符,显然即使是 php 包含的一个字符也会导致这种情况,但是我一直在使用 grep -rl $'\xEF\xBB\xBF' *.php 及其变体来搜索任何 .php、.html , .js 或 .css 文件,这可能是罪魁祸首,在消除所有那些积极的文件后,问题仍然存在,有人有什么想法吗?
【问题讨论】:
-
关于您的问题的问题。文档类型不应该在文件的第一行之前吗?
-
@GertKommer 文档类型应该是 html 输出的第一行。这里就是这种情况。
-
那是您正在验证的实际文档吗?你能把它缩小到一个产生问题的小而完整的文档,然后发布吗? (我刚刚尝试将您的示例扔给验证器,它告诉我 HTTP Content-Type 正确地是 UTF-8 ...)
-
我不知道发生了什么但我去睡觉了,第二天早上验证不再有这个问题。我没有解释(建议 W3 使用缓存数据进行分析是没有意义的)但无论如何它现在已经修复了。我给了@Sergiu Paraschiv 的答案,因为他的回答最详细。不过还是谢谢大家!
标签: php html w3c-validation