首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将default.html的字符编码设置为UTF-8?

如何将default.html的字符编码设置为UTF-8?
EN

Stack Overflow用户
提问于 2009-05-25 02:57:42
回答 5查看 70K关注 0票数 17

我花了几个小时让我的网站严格验证HTML4.01,实际上我已经成功了,但仍然有一个警告是我无法摆脱的。警告是:

字符编码不匹配!

HTTP标头中指定的字符编码(iso-8859-1)与元素中的值(utf-8)不同。我将使用HTTP报头中的值(iso-8859-1)进行此验证。

有问题的页面是www.dubiousarray.net/default.html。正如您从页面源代码中看到的,我有以下meta元素:

代码语言:javascript
复制
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">

并且我已经确保default.html文件是以UTF8编码保存的。奇怪的是,站点中的所有其他页面都在没有此警告的情况下进行验证,它们具有相同的meta标记,并且以完全相同的方式保存。我很确定这与服务器配置有关。.htaccess文件目前如下所示:

代码语言:javascript
复制
# Use PHP 5 as default
AddHandler application/x-httpd-php5 .php
AddDefaultCharset UTF-8

但我已经尝试了this page上显示的所有修复程序,但没有一个有效。我怎样才能摆脱这个警告呢?

在火狐中,如果你用鼠标右键点击页面并选择“查看页面信息”,default.html会显示为ISO-8859-1,而所有其他页面都会显示为UTF-8。

所有的html文件都是以完全相同的方式创建和保存的(字符编码设置为UTF-8,没有BOM),但是default.html是唯一一个没有显示为UTF-8的文件。因此,我假设服务器正在对default.html文件做一些特殊的操作,尽管我不确定是什么,因为在.htaccess文件中没有它的标志。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-05-25 13:30:00

您需要替换HTTP级别的标头。

这应该是可行的:

代码语言:javascript
复制
<?php
    header('Content-type: text/html; charset=utf-8');
?>

请注意,上述内容必须是文件中的第一个内容。没有例外。参见。

有关如何在不同的web堆栈中更改字符集标题的一般信息,请参阅。

票数 26
EN

Stack Overflow用户

发布于 2009-05-25 03:07:01

服务器在HTTP标头中明确地将文档标记为ISO-8859-1。尝试使用合适的编辑器保存使用UTF-8编码的default.html。

票数 2
EN

Stack Overflow用户

发布于 2009-05-25 04:20:18

好了,我已经想出了我的问题的部分解决方案。因为只有default.html文件引起了警告,所以我认为服务器正在对它做一些特殊的操作,因为它的名称。因此,我创建了一个名为home.html的新文件,其内容与default.html文件相同,并将.htaccess文件指向新文件(请参见下面的第3行)。

代码语言:javascript
复制
# Use PHP5 as default
AddHandler application/x-httpd-php5 .php
DirectoryIndex home.html
AddDefaultCharset UTF-8

这解决了这个问题,所有的文件现在都被识别为UTF-8。我仍然不确定服务器对default.html文件做了什么,也不知道与此相关的设置在哪里,但随着我的问题消失,我会忘记这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/905173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档