浏览器不使用utf-8,但设置了元标记

时间:2012-05-09 15:35:47

标签: html browser utf-8 character-encoding

这是我的页面标题:

<!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">
...

正如您所看到的,charset设置为utf-8但Chrome / Firefox不会将该页面打印为utf-8。我想那是因为服务器发送了这个标题:

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

如何从html页面覆盖此标题?

3 个答案:

答案 0 :(得分:6)

你不能。

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

修复服务器设置,以便发送正确的内容类型。

答案 1 :(得分:1)

您无法覆盖html页面中的charset。需要注意的事项:

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

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

    file -I filename.html
    

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

答案 2 :(得分:0)

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

AddDefaultCharset UTF-8