2014-02-09 102 views
0

我在ANSI编码的HTML文件。如果我尝试浏览它,则会收到不可理解的字符,如问号。 我试图把这个标签:HTML内容类型元标签(UTF8)

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 

但它并没有改变任何事情。

我将该文件转换为utf-8并再次尝试,瞧,它的工作。

所以我删除了上面的行:<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>并打开文件,它显示正常。

所以,我的问题是:这行代码是什么意思?

+0

什么样的角色?哪种语言? – Niels

+0

如果你把你的文件谎言它的编码,它是行不通的。 – SLaks

+0

阿拉伯语言,我编辑了这个问题。 –

回答

1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
  • http-equiv属性为内容 属性的信息/值的HTTP标头。
  • content属性给出了与http-equiv或name属性关联的值。
  • charset属性指定的HTML文档的字符编码。

有效地,上述<meta>声明将指示浏览器具有text/html与字符集设定为UTF-8型的文件。

如果Content-Type标头已经通过HTTP提供服务,那么包含元声明将不会有太大的区别。也就是说,除用户覆盖以外,真正的HTTP标头优先于所有内容(UTF BOM是一个例外)。所述charset属性只是意味着作为回退,并且如果使用在HTTP报头中指定的字符集的文件解码失败将仅被使用。

请注意,如果文件未保存为UTF-8,则这没有意义。只有当文件被保存为UTF-8 charset将是有效的。将其保存为UTF-8,你可以简单地添加一个字节顺序标记(BOM),在文件的开始:

$contents = file_get_contents('yourFile.ext'); 
file_put_contents($your_file, "\xEF\xBB\xBF".$content); 

参见: