1

这是我的页眉:

<!DOCTYPE html> 
<html> 
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
...

如您所见,字符集设置为 utf-8,但 Chrome/Firefox 不会将页面打印为 utf-8。我猜那是因为服务器发送了这个标头:

Content-Type:text/html; charset=ISO-8859-15

如何从我的 html 页面覆盖此标头?

4

3 回答 3

6

你不能。

HTTP 标头优先于声称等效的元元素。

修复您的服务器设置,使其发送正确的内容类型。

于 2012-05-09T15:37:30.847 回答
1

您不能从您的 html 页面覆盖字符集。要寻找的东西:

  1. 您的 Web 服务器可能配置有默认字符集。看看能不能改。请注意:这可能是一个全局设置,会影响特定Content-Type.

  2. 尽管您确实charset=UTF-8在 html 文档中键入了内容,但您的 IDE/文本编辑器可能仍会使用不同的字符编码来保存它。如果您使用 *nix,您可以在命令行上检查任何文件的文件编码,如下所示:

    file -I filename.html
    

    如果该命令的输出报告的不是UTF-8or us-ascii,您应该返回到您的 IDE/文本编辑器,并弄清楚如何在它保存为的文件上设置字符编码UTF-8。您的网络服务器可能会自动检测字符编码并相应地设置标题。

于 2012-05-09T15:42:30.347 回答
0

您可以通过添加包含以下内容的 .htaccess 文件来更改服务器标头:

AddDefaultCharset UTF-8
于 2012-05-09T15:53:49.317 回答