这是在HTML页面中声明charset的正确方法吗?

时间:2011-07-12 11:11:43

标签: html meta-tags

HTML

中这些元标记之间的区别是什么?
<meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

在w3c验证中,第一个未被识别但由于某种原因我必须使用它。

2 个答案:

答案 0 :(得分:1)

我的猜测是http-equiv属性允许指定通常通过HTTP标头提供的信息(用户代理可以选择如此处理),而使用name是一种语法来设置自由格式的任意键/值对以及有关文档的其他信息(作者,关键字......)

这是spec for HTML 4

  

名称 =姓名[CS]       此属性标识属性名称。此规范未列出此属性的合法值    http-equiv =姓名[CI]       可以使用此属性代替name属性。 HTTP服务器使用此属性来收集HTTP响应的信息   邮件标题。

你的第一个例子可能是合法的,但不会产生任何可观的结果。

答案 1 :(得分:0)

我以前从未见过第一个。

这是最简单的:

<meta charset="utf-8">

如果你正在使用XHTML,你也可以在XML序言中声明charset:

<?xml version="1.0" encoding="UTF-8"?>

顺便说一句,第一个是HTML5的新版本,但是已经做了很多工作来证明它适用于所有已知的现有浏览器,因此即使使用较旧的DOCTYPE也可以安全使用。