当我们没有指定<meta charset =“utf-8”/>时会发生什么?

时间:2013-05-12 08:06:10

标签: html html5

当我们未指定<meta charset="utf-8">时会发生什么?在HTML文档的HEAD中?

3 个答案:

答案 0 :(得分:17)

是否存在此类meta标记,浏览器和用户代理将首先查看HTTP标头以查找其中的编码信息。实际上,他们甚至会在荣誉用户设置之前进行BOM嗅探,如HTML5 CR中的8.2.2.1 Determining the character encoding部分所述 - 在本期中,这是对现实的描述,而不仅仅是提议的规范。

所以答案真的是“它取决于”。在许多情况下,忽略meta标记,因此省略它不会产生任何影响,除非在本地保存HTML文档的情况下(以便丢失HTTP标头)。在许多其他情况下,它不会被忽略,但如果省略,浏览器无论如何都会推断出正确的编码。在某些情况下,标签恰好是使浏览器使用正确编码的唯一方法,省略它将导致错误的数据解释,通常使得字节在windows-1252编码中被解释。重要的是取决于实际内容。

答案 1 :(得分:13)

  

当我们未指定<meta charset="utf-8">时会发生什么?在HTML文档的HEAD中?

用户代理查找从服务器发送的Content-Type响应HTTP标头:

Content-Type: text/html; charset=utf-8

如果Content-Type标头未指定charset,则取决于用户代理,可能会发生不同的事情。某些用户代理可能会尝试使用启发式方法来猜测正确的字符集,方法是分析来自响应流中寻找已知编码的一些字节。如果失败,您可能会在您使用ASCII范围之外的字符的网页上找到几个问号或奇怪的符号。

答案 2 :(得分:-1)

用于以下字符:
↑→↓←

他们会表现为:
↑→↓â†

除非您使用UTF-8格式:
<meta charset="UTF-8">