HTML 5是否需要charset meta标签?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

W3C“HTML 5与HTML 4的区别”工作草案规定:

对于HTML语法,作者必须声明字符编码。

“要求”是什么意思?

显然,浏览器没有charset meta标签也可以识别HTML5。如果没有指定编码,浏览器将使用哪种编码?

基本上,我想知道是否真的有必要包括<meta charset="">或者,如果99%的时间浏览器将使用正确的编码。

以下是链接:http://www.w3.org/TR/html5-diff/#character-encoding

提问于
用户回答回答于

没有必要包括<meta charset="blah">。如规范所述,字符集也可以由服务器使用HTTP指定Content-Type头或通过在下载文件的开头包含一个Unicode BOM。

大多数web服务器将返回Content-Type如果未指定任何HTML文本数据,则为其标头。如果web服务器没有发送带有Content-Type标头该文件不包括BOM。页面不包括<meta charset="blah">声明时,浏览器将具有通常基于主机语言设置的默认编码。如果这与文件的实际字符编码不匹配,则某些字符将不正确地显示。

浏览器会在99%的时间里使用正确的编码吗?如果你的页面是UTF-8,很可能。如果不是,可能不会。

W3C提供了一个概述这三种方法的优先规则的文档这说明订单是HTTP头,BOM,后面是文档中的规范(meta标记)。

用户回答回答于

根据GooglePageSpeedBrowser的扩展,在一个元元素中声明一个字符集“禁用IE8的前瞻性功能”,这显然迫使它以串行方式下载所有内容。

我的理解是<meta charset-"utf-8">是有效HTML 5所必需的,但这就是我开始在这里浏览的原因。

这个规范草案在我看来非常清楚,因为我通过.htaccess添加了HTTP头。

扫码关注云+社区