W3C "HTML5 differences from HTML4 " 工作草案指出:
For the HTML syntax, authors are required to declare the character encoding.
“必需”是什么意思?
显然,浏览器在没有 charset
的情况下仍会呈现 HTML5元属性。如果没有指定编码,浏览器将使用哪种编码?
基本上,我想知道是否真的有必要包含 <meta charset="">
,或者如果 99% 的时间浏览器无论如何都会使用正确的编码。
最佳答案
没有必要包括<meta charset="blah">
.正如规范所说,字符集也可以由服务器使用 HTTP Content-Type
指定。 header 或在下载文件的开头包含 Unicode BOM。
今天的大多数网络服务器都会发回 Content-Type
中的字符集如果未指定,则为 HTML 文本数据的 header 。如果 Web 服务器没有发回带有 Content-Type
的字符集header and 文件不包含 BOM and 页面不包含 <meta charset="blah">
声明,浏览器将有一个默认编码,通常基于主机的语言设置。如果这与文件的实际字符编码不匹配,则某些字符将无法正常显示。
浏览器会在 99% 的时间使用正确的编码吗?如果您的页面是 UTF-8,可能。如果没有,可能不会。
W3C 提供了一个 document outlining the precendence rules for the three methods这表示顺序是 HTTP header 、BOM,然后是文档内规范(元标记)。
关于html - HTML5 是否需要 "charset"属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14669352/