Character Encoding mismatch!
The character encoding specified in
the HTTP header (iso-8859-1) is
different from the value in the
element (utf-8). I will use the value
from the HTTP header (iso-8859-1) for
this validation.
该页面是www.dubiousarray.net/default.html.从页面来源可以看到我有以下元素:
<Meta http-equiv="Content-Type" content="text/html;charset=utf-8">
我确保使用UTF-8编码保存了default.html文件。奇怪的是,网站中的所有其他页面都没有出现此警告,它们具有相同的元标记,并以完全相同的方式保存。我很确定它与服务器配置有关。 .htaccess文件目前看起来像这样:
# Use PHP5 as default AddHandler application/x-httpd-PHP5 .PHP AddDefaultCharset UTF-8
但是我已经尝试了所有在this page上显示的修补程序,没有一个工作。有没有人有任何想法如何摆脱这个警告?最后一点,在Firefox中,如果您右键单击页面并选择“查看页面信息”,则default.html显示为ISO-8859-1
而所有其他页面显示UTF-8。
谢谢雅各布
编辑:需要注意的是,所有的html文件都以完全相同的方式创建并保存(字符编码设置为不带BOM的UTF-8),但default.html是唯一不显示为UTF-8的文件。所以我假设服务器正在做一些特别的default.html文件,虽然我不知道在.htaccess文件中没有标记它。
解决方法
这应该工作:
<?PHP header('Content-type: text/html; charset=utf-8'); ?>
请注意,以上必须是您的文件中的第一件事。没有例外。看到
http://us2.php.net/manual/en/function.header.php
有关如何更改不同网络堆栈中的字符集头部的一般信息,请参阅
http://www.w3.org/International/O-HTTP-charset
拉里