您可以在 http 响应标头中发送字符集,也可以在发送的 html 文件中定义字符集。
如果这两个字符集不同会发生什么?浏览器如何使用在 http 标头中收到的字符集以及它在 html 文件本身中提供的字符集有何关系?
HTML 4.01 规范在 5.2.2 中明确指出指定字符编码 http://www.w3.org/TR/html401/charset.html#h-5.2.2,HTTP 标头中的信息优先于meta
标签。 HTML5 PR 不会改变这一点,但它在 8.2.2.2 中添加了反映浏览器实践的内容确定字符编码 http://www.w3.org/TR/html5/syntax.html#determining-the-character-encoding它们都被 HTML 文档开头的字节顺序标记 (BOM) 覆盖(因此,如果您使用“另存为带 BOM 的 UTF-8”保存 .html 文件,它将被视为 UTF-8无论)。
A meta
如果 HTTP 标头或 BOM 中未提供信息,则指定字符编码的标记才会生效。服务器可能不包括charset
中的参数Content-Type
header,或者 HTML 文档可能在本地打开,因此根本没有 HTTP 标头。当用户在自己的设备中保存 HTML 文档时,不会保存 HTTP 标头。这是使用a的主要原因meta
标签指定字符编码;但它当然应该指定正确的编码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)