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

时间:2012-09-13 12:18:08

标签: 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文档的应用程序来选择默认值?

1 个答案:

答案 0 :(得分:19)

使用以下规则确定字符集:

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

    ......然后......

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

但最重要的是:

  

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

<强>来源: