如果没有提供字符编码,HTML5是否指定HTML文档的默认字符编码?

Jon*_*ram 21 html5 character-encoding

通过HTTP检索的示例HTML文档缺少:

  • 一个HTTP Content-Type标头
  • 一个HTML <meta charset="<character encoding>" />
  • 一个HTML <meta http-equiv='Content-Type' content='Type=text/html; charset=<character encoding>'>

关于HTML5,是默认的,例如UTF-8,假设为字符编码?或者完全取决于阅读HTML文档的应用程序来选择默认值?

Thi*_*ter 20

使用以下规则确定charset:

  1. 用户覆盖.
  2. "Content-Type"字段中的HTTP"charset"参数.
  3. 字节顺序标记HTML文档本身中的任何其他数据之前.
  4. 具有"charset"属性的META声明.
  5. 具有"http-equiv"属性设置为"Content-Type"的META声明和为"charset"设置的值.
  6. 未指定的启发式分析.

...然后...

  1. 根据Unicode技术标准#22中定义的Charset Alias Matching规则规范化给定的字符编码字符串.
  2. 覆盖一些有问题的编码,即故意将某些编码视为不同的编码.最常见的覆盖是将US-ASCII和ISO-8859-1视为Windows-1252,但此表中列出了其他几种编码覆盖.正如规范所指出的那样,"根据上表将某些编码视为其他编码的要求是故意违反W3C字符模型规范."

但最重要的是:

您应该始终每个 HTML文档上指定字符编码,否则会发生错误.您可以通过艰难的方式(HTTP Content-Type标头),简单方式(<meta http-equiv>声明)或新方式(<meta charset>属性)来完成,但请执行此操作.网络谢谢你.

资料来源: