Joe*_*Lee 5 html character-encoding meta-tags
假设浏览器遇到<meta>
指定字符编码的标记,如下所示:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)
它是否从一开始就重新解析页面开始,因为该部分中的某些前面的字符<head>
可能被错误地解释了?还是有一些其他约束阻止先前的字符被错误地解释?
据我所知,浏览器在找到字符集声明后不会返回,<head>
并且它们假定到目前为止是 ASCII 兼容的字符集。不幸的是我找不到参考资料来证实这一点。
如果服务器已经提供了 Content-Type HTTP 标头,则确认浏览器将忽略 Content-Type 元元素,因此您无法使用元素覆盖“错误”的服务器端字符集<meta>
。
字符集声明的要点<meta>
是针对不由 HTTP 服务器提供服务器的 HTML 文档。
这意味着您不应依赖<meta>
HTML 文件中的字符集声明,而应配置 HTTP 服务器以提供正确的字符集。如果由于某种原因您必须依赖<meta>
字符集声明,那么您应该只使用 ASCII 字符,并将其尽可能早地放置在位置<head>
,最好是作为第一个元素。