W3C“HTML5中的HTML差异”工作草案说明:
For the HTML Syntax,authors are required to declare the character encoding.
“必需”是什么意思?
显然,浏览器仍然会呈现HTML5而不使用字符集元标记.如果没有指定编码,浏览器会使用哪种编码?
解决方法
没有必要包括< Meta charset =“blah”>.如规范所述,字符集也可以由服务器使用HTTP Content-Type头指定,或者在下载文件的开头包含Unicode BOM.
如果没有指定,大多数Web服务器将会在Content-Type头文件中发送HTML文本数据.如果Web服务器没有使用Content-Type头发回一个字符集,并且该文件不包括BOM,并且该页面不包含< Meta charset =“blah”>声明,浏览器将具有通常基于主机的语言设置的默认编码.如果与文件的实际字符编码不符,则会出现一些字符不正确.
浏览器会在99%的时间使用正确的编码吗?如果您的页面是UTF-8,可能.如果没有,可能不是.
W3C提供了一个document outlining the precendence rules for the three methods,表示订单是HTTP标头,BOM,后跟文档规范(Meta标签).