这是我的HTML5网络应用程序的开始:
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
是否需要元内容标记。 HTML / UTF-8是默认的吗?
我刚刚删除了html标记中的命名空间,因为这不是必需的。
想知道我是否可以删除元标记。
答案 0 :(得分:5)
是;通常这只是HTML5中的<meta charset='utf-8'>
,因为实际的内容类型总是由相应的HTTP标头决定:
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
您可以继续使用您已有的内容,但内容类型必须为text/html
,后跟字符编码才能验证为HTML5。为简单起见,请使用新推荐的语法。有关详细信息,请参阅W3C HTML5 spec。
答案 1 :(得分:2)
这里有两个不同的问题:内容类型(媒体类型,MIME类型)和字符编码(“charset”)。对于后者,请参阅<meta charset="utf-8"> vs <meta http-equiv="Content-Type">。请注意,HTML中的字符编码没有通用默认值,meta
标记只是指定编码的一种方式,可能会受到HTTP标头或BOM的限制。
但问题的标题是“HTML5是否需要设置内容类型?”,答案是它不需要在HTML文档中设置它不能在HTML文档中设置。如果某些软件解析meta
标记并将其解释为具有特定含义,则它已决定将该文档作为HTML文档处理。
通用Internet协议指定客户端如何获知内容类型(在HTTP标头,电子邮件标题等中),对于通过HTTP传输的HTML文档,服务器应将内容类型公布为text / html(或者作为为真正的XHTML定义的内容类型,如果您想要Draconian XML错误处理和其他严重后果)。没有这些信息,浏览器将不得不猜测内容类型,他们可能猜错了