在 HTML 中声明字符编码

Men*_*nel 5 html meta character-encoding http-equiv

我应该像这样声明字符集:

<meta http-equiv="content-type" content="text/html" charset="utf-8" />
Run Code Online (Sandbox Code Playgroud)

或者像这样:

<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
Run Code Online (Sandbox Code Playgroud)

还是两者都有效?

Sin*_*nür 2

根据@Alohci 的评论进行了更新。

请参阅W3C 的文档<meta http-equiv="...">

编码声明状态 ( http-equiv="content-type")

编码声明状态只是设置属性的另一种形式charset:它是字符编码声明。该状态的用户代理要求全部由规范的解析部分处理。

对于属性处于 Encoding 声明状态的元元素http-equiv,内容属性必须具有一个与字符串匹配的 ASCII 不区分大小写的值,该字符串由以下部分组成: 文字字符串"text/html;"可选地后跟任意数量的空格字符,后跟文字 string "charset=",后跟字符编码声明的字符编码的标签之一。

文档不得同时包含具有http-equiv编码声明状态属性的元元素和存在该charset属性的元元素。强调我的

因此,如果您要使用http-equiv,则必须将其用作<meta http-equiv="Content-Type" content="text/html; charset=utf-8">。但是,这只是另一种表达方式<meta charset="utf-8">,因此请使用缩写形式。