validator.w3.org报告www.besaltnlight.ca:
字符编码覆盖有效! 检测到的字符编码“utf-8”已被抑制,而“iso-8859-1”则被使用。
php代码输出iso-8859-1并且php将其设置为默认字符集。
是什么导致了这个问题?我使用了错误的doctype吗?
哦,这会导致IE中的怪癖模式吗?
感谢您的帮助。
格里
答案 0 :(得分:2)
该文件采用UTF-8编码。它有一个字节顺序标记,智能引号和省略号,都以UTF-8正确编码。它以两个字节顺序标记开头,这是无效的。您必须删除一个,并且验证器还会说UTF-8文档中存在BOM可能会造成混淆,因此您可以将它们都删除。
由于您输出的是UTF-8,因此必须将HTTP标头更改为:
Content-type: text/html; charset=utf-8
由于您缺少该标题,因此强制浏览器猜测。此外,元标记必须更改为
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
出于同样的原因。
答案 1 :(得分:1)
您的输出以Unicode字节顺序标记开头,以UTF-8编码。
这可能是PHP文件的第一个字节,或主文件中包含的任何PHP文件。您的编辑甚至可能不会显示它们。解释为ISO-8859-1,输出的开头看起来像<!DOCTYPE html
,它们甚至是两个字节顺序标记,一个接着一个。
正如jleedev所说,要么确保你的文件真的用Latin-1编码,要么将编码声明为UTF-8。