http header 和 html meta 中的字符集有什么区别?

Kor*_*gay 5 html http character-encoding

您可以在 http 响应标头中发送字符集,也可以在发送的 html 文件中定义字符集。

如果这两个字符集不同会发生什么?浏览器如何使用在 http 标头中收到的字符集以及它在 html 文件本身中提供的字符集有何关系?

Juk*_*ela 4

HTML 4.01 规范在 5.2.2指定字符编码中明确指出,HTTP 标头中的信息优先于meta标记。HTML5 PR 不会改变这一点,但它在 8.2.2.2确定字符编码中添加了反映浏览器实践的内容,它们都被 HTML 文档开头的字节顺序标记 (BOM) 覆盖(因此,如果您已保存你的.html文件用\xe2\x80\x9c保存为带有BOM\xe2\x80\x9d的UTF-8,无论如何它都会被视为UTF-8)。

\n\n

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

\n