我花了几个小时来验证我的网站HTML 4.01 严格事实上我已经成功了,但仍然有一个警告我无法摆脱。警告是:
字符编码不匹配!
中指定的字符编码
HTTP 标头 (iso-8859-1) 是
与中的值不同
元素(utf-8)。我将使用该值
来自 HTTP 标头 (iso-8859-1)
本次验证。
有问题的页面是www.duviousarray.net/default.html http://www.dubiousarray.net/default.html。正如您从页面源代码中看到的,我有以下元元素:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
我已确保 default.html 文件以 UTF-8 编码保存。奇怪的是,网站中的所有其他页面都在没有此警告的情况下进行验证,并且它们具有相同的元标记并以完全相同的方式保存。我很确定这与服务器配置有关。 .htaccess 文件目前如下所示:
# Use PHP 5 as default
AddHandler application/x-httpd-php5 .php
AddDefaultCharset UTF-8
但我已经尝试了上面显示的所有修复这一页 http://www.askapache.com/htaccess/setting-charset-in-htaccess.html但他们都不起作用。我怎样才能摆脱这个警告?
在 Firefox 中,如果右键单击页面并选择“查看页面信息”,默认.html显示为 ISO-8859-1,而所有其他页面显示 UTF-8。
所有 html 文件都以完全相同的方式创建和保存(字符编码设置为 UTF-8,无需BOM https://en.wikipedia.org/wiki/Byte_order_mark), but 默认.html是唯一不显示为 UTF-8 的。所以我假设服务器正在做一些特殊的事情默认.html文件,但我不确定是什么,因为在文件中没有它的迹象.htaccess file.
您需要替换 HTTP 级别的标头。
这应该有效:
<?php
header('Content-type: text/html; charset=utf-8');
?>
请注意,以上内容必须是您文件中的第一件事。没有例外。看header https://www.php.net/manual/en/function.header.php.
有关如何更改不同 Web 堆栈中的字符集标头的一般信息,请参阅设置 HTTP 字符集参数 http://www.w3.org/International/O-HTTP-charset.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)