如何将Character Encoding设置为UTF-8 for default.html?

前端之家收集整理的这篇文章主要介绍了如何将Character Encoding设置为UTF-8 for default.html?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我花了几个小时让我的网站验证HTML 4.01严格,我其实已经成功了,但仍有一个警告,我无法摆脱。警告是:

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文件中没有标记它。

解决方法

您需要替换HTTP级标题

这应该工作:

<?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

拉里

猜你在找的HTML相关文章