W3C “ HTML5 与 HTML4 的区别” 工作草案指出:
对于 HTML 语法,作者需要声明字符编码。
“必需”是什么意思?
显然,浏览器仍会在没有 charset
元属性的情况下呈现 HTML5。如果没有指定编码,浏览器将使用哪种编码?
基本上,我想知道是否真的有必要包含 <meta charset="">
,或者浏览器是否在 99% 的情况下都会使用正确的编码。
原文由 twiz 发布,翻译遵循 CC BY-SA 4.0 许可协议
W3C “ HTML5 与 HTML4 的区别” 工作草案指出:
对于 HTML 语法,作者需要声明字符编码。
“必需”是什么意思?
显然,浏览器仍会在没有 charset
元属性的情况下呈现 HTML5。如果没有指定编码,浏览器将使用哪种编码?
基本上,我想知道是否真的有必要包含 <meta charset="">
,或者浏览器是否在 99% 的情况下都会使用正确的编码。
原文由 twiz 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据 Google PageSpeed 浏览器扩展,在元元素中声明字符集“禁用 IE8 的先行功能”,这显然会强制它串行下载所有内容。
我的理解是 <meta charset-"utf-8">
是有效 HTML5 所必需的,但这就是我开始浏览这里的原因。
该规范草案对我来说似乎很清楚,因为我通过 .htaccess
添加了 HTTP 标头,所以我将开始将其排除在外……即使我很想不这样做,只是让 IE8 用户多受点苦。
谢谢。
@Jules Mazur 你对这些要点有什么参考吗?我所做的大部分工作是搜索引擎优化,可访问性对我来说很重要,如果是这样的话,我非常愿意离开元声明。
原文由 adam-asdf 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答1.6k 阅读✓ 已解决
4 回答1.6k 阅读
2 回答986 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
1 回答871 阅读✓ 已解决
2 回答1.2k 阅读
没有必要包括
<meta charset="blah">
。如规范所述,服务器也可以使用 HTTPContent-Type
标头或通过在下载文件的开头包含 Unicode BOM 来指定字符集。如果未指定,当今大多数 Web 服务器将发回 HTML 文本数据的
Content-Type
标头中的字符集。如果 Web 服务器不发回带有Content-Type
标头的字符集, 并且 文件不包含 BOM ,并且 页面不包含<meta charset="blah">
声明,浏览器将具有通常基于主机语言设置的默认编码。如果这与文件的实际字符编码不匹配,那么某些字符将无法正常显示。浏览器会在 99% 的时间使用正确的编码吗?如果您的页面是 UTF-8,可能。如果没有,可能不会。
W3C 提供了一份 文档,概述了三种方法的优先级规则, 说明顺序是 HTTP 标头、BOM,然后是文档内规范(元标记)。