http头和html meta中的charset有什么区别?

时间:2014-09-25 04:31:10

标签: html http character-encoding

你可以在http响应头中发送charset,也可以在你发送的html文件中定义一个charset ..

如果这两个字符集不同,会发生什么?浏览器如何使用charset获取它在http标头中收到的内容以及它在html文件本身提供的charset的重要性?

1 个答案:

答案 0 :(得分:2)

HTML 4.01规范明确指出,在5.2.2 Specifying the character encoding中,HTTP标头中的信息优先于meta标记。 HTML5 PR不会改变这一点,但它反映了浏览器实践,在8.2.2.2 Determining the character encoding中,它们都被HTML文档开头的字节顺序标记(BOM)覆盖(所以如果你有的话)使用“另存为带BOM的UTF-8”保存您的.html文件,无论如何都将被视为UTF-8。

如果HTTP标头或BOM中未提供信息,则指定字符编码的meta标记生效。服务器可能不在charset标头中包含Content-Type参数,或者HTML文档可能在本地打开,因此根本没有HTTP标头。当用户将HTML文档保存在自己的设备中时,不会保存HTTP标头。这是使用meta标记指定字符编码的主要原因;但它当然应该指定正确的编码。