1

我最近设计了一个包含德语和荷兰语字符的网站,我希望该页面使用字符编码 utf-8。

我添加了 xml 声明:

<?xml version="1.0" encoding="UTF-8"?>

和元标记:

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

当我在线查看该网站时,德语文本中的特殊字符显示不正确。当我尝试使用 w3c 验证器验证页面时,我收到以下警告:

HTTP 标头 (iso-8859-1) 中指定的字符编码与 XML 声明 (utf-8) 中的值不同。我将使用 HTTP 标头 (iso-8859-1) 中的值。

这是服务器问题吗?只是我已将相同的文件上传到我的另一台服务器,并且页面使用 utf-8 正确显示在那里。

任何有关如何将页面编码为 utf-8 的帮助或建议将不胜感激。

我难住了!


感谢 jason,我找到了一个名为 mod_mime-defaults.conf 的文件

该文件包含以下内容:

# AddDefaultCharset UTF-8
AddDefaultCharset ISO-8859-1

如果我从 AddDefaultCharset UTF-8 之前删除 #,您认为这会有所帮助吗?或者在 AddDefaultCharset ISO-8859-1 之前添加一个 #。

我尝试编辑此文件,但我认为我没有权限。嗯……?

4

3 回答 3

3

这可能是服务器问题。

如果您使用 Apache,请检查通常位于 *nix 服务器上 /etc/httpd/conf/httpd.conf 的 Apache 配置文件,以获取AddDefaultCharset.

此设置指定所有提供的内容的默认值。如果它被注释掉,这意味着它将依赖浏览器的或 META 设置来确定字符集。

于 2011-01-05T03:29:39.963 回答
0

HTML 元标记与 HTTP 响应标头不同。您需要在 HTTP 响应标头中设置字符编码。根据您的问题历史,您正在使用 PHP - 或者至少熟悉它 - 所以这里有一个 PHP 目标示例,说明如何做到这一点。

在回显任何字符之前,将以下行放入 PHP 文件中。

header('Content-Type: text/html;charset=UTF-8');

也可以看看:


与问题无关:您不应该在HTML页面上放置XML声明。这是其他麻烦的秘诀。

于 2011-01-05T03:27:46.970 回答
-1

我将 charset=UTF-8 更改为 charset=iso-8859-1,警告消失了。

于 2017-02-23T16:03:24.220 回答