为了定义 HTML5 Doctype 的字符集,我应该使用哪种表示法?
短:
<meta charset="utf-8" />
长:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
答案 0 :(得分:1039)
在HTML5中,它们是等效的。使用较短的一个,它更容易记住和键入。 Browser support is fine因为它是为了向后兼容而设计的。
答案 1 :(得分:245)
meta charset声明的两种形式都是等效的,并且应该在不同浏览器中使用相同的形式。但是,在将您的Web文件字符集声明为UTF-8时,您需要记住一些事项:
默认情况下,Apache服务器配置为提供ISO-8859-1中的文件,因此您需要将以下行添加到.htaccess
文件中:
AddDefaultCharset UTF-8
这将配置Apache为您的文件提供在Content-Type响应标头中声明UTF-8编码,但您的文件必须以UTF-8(无BOM)保存。< / p>
记事本无法在没有BOM的情况下以UTF-8保存文件。一个可以Notepad++的免费编辑器。在程序菜单栏上,选择“编码&gt;在没有BOM的UTF-8中编码”。您还可以使用“编码&gt;转换为无BOM的UTF-8”打开文件并以UTF-8重新保存。
答案 2 :(得分:81)
答案 3 :(得分:30)
<meta charset="utf-8">
与/ HTML5一起推出。
如文档中所述,两者都有效。但是,<meta charset="utf-8">
仅适用于HTML5(更容易输入/记住)。
在适当的时候,旧样式必将在不久的将来被弃用。我坚持使用新<meta charset="utf-8">
。
只有一种方式,但是向上。在科技的案例中,逐步淘汰旧的(真的,非常快)
答案 4 :(得分:17)
虽然没有对其他答案提出异议,但我认为以下值得一提。
http-equiv
)符号和“短”符号相同,以先到者为准; <meta>
标记; 您可以运行echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta charset="windows-1251"><title>привет</title></head><body>привет</body></html>' | nc -lp 4500
并将浏览器指向localhost:4500
进行测试。 (当然,您需要更改或删除部件。物料清单部件为\xef\xbb\xbf
。请注意您的shell编码。)
请注意,明确声明编码非常重要。让浏览器猜测会导致安全问题。
答案 5 :(得分:10)
使用HTML5时,使用<meta charset="utf-8" />
用于网络浏览器。
使用HTML4或XHTML时使用<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
,或者使用过时的dom解析器,例如php 5.3中的DOMDocument
答案 6 :(得分:2)
有一些基于Mozilla Foundation和sitepoint
的新闻不要使用此值(
http-equiv=content-type
),因为它已过时。 首选&lt;charset
&gt;上的meta
属性元件。
答案 7 :(得分:0)
要在电子邮件上嵌入签名,我将使用长版:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
原因是,没有太多的电子邮件阅读器使用html5,因此始终最好使用旧的html样式。实际上,使用表比使用divs + css更好。
答案 8 :(得分:0)
我建议这样做,以使事情与HTML5保持一致。
<meta charset="UTF-8">
EG:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>