为了定义HTML5 Doctype的字符集,我应该使用哪种符号?
短:<meta charset=“utf-8”/>长:<meta http equiv=“Content Type”Content=“text/html;charset=utf-8”/>
为了定义HTML5 Doctype的字符集,我应该使用哪种符号?
短:<meta charset=“utf-8”/>长:<meta http equiv=“Content Type”Content=“text/html;charset=utf-8”/>
当前回答
在HTML5中,它们是等价的。使用较短的,因为它更容易记忆和打字。浏览器支持很好,因为它是为向后兼容而设计的。
其他回答
使用HTML5时,请在web浏览器中使用<meta charset=“utf-8”/>。
当使用HTML4或XHTML时,或者对于过时的DOM解析器(如PHP 5.3中的DOMDocument),请使用<meta-http-equiv=“Content-Type”Content=“text/html;charset=utf-8”/>。
有一些基于Mozilla基金会和SitePoint的新闻:
不要使用此值(http-equiv=content-type),因为它已过时。首选<meta>元素上的charset属性。
这两种形式的元字符集声明都是等效的,并且在不同的浏览器之间应该是相同的。但是,在将web文件字符集声明为UTF-8时,需要记住以下几点:
以UTF-8编码保存文件,不使用字节顺序标记(BOM)。使用元字符集在HTML文件中声明编码(如上所述)。web服务器必须为文件提供服务,在Content-Type HTTP标头中声明UTF-8编码。
默认情况下,Apache服务器配置为提供ISO-8859-1中的文件,因此您需要在.htaccess文件中添加以下行:
AddDefaultCharset UTF-8
这将配置Apache以提供在Content-Type响应标头中声明UTF-8编码的文件,但首先必须以UTF-8(无BOM)保存文件。
记事本无法在没有BOM的情况下以UTF-8格式保存文件。可以使用Notepad++的免费编辑器。在程序菜单栏上,选择“编码>编码为UTF-8,不带BOM”。您还可以使用“编码>转换为UTF-8而不使用BOM”打开文件并以UTF-8格式重新保存。
有关维基百科字节顺序标记(BOM)的更多信息。
虽然不质疑其他答案,但我认为以下内容值得一提。
“长”(http equiv)符号和“短”符号相等。先到者获胜;Web服务器标头将覆盖所有<meta>标记;BOM(字节顺序标记)将覆盖所有内容,在许多情况下,它将影响HTML4(可能还有其他内容);如果您没有声明任何编码,您可能会在浏览器定义的“回退文本编码”中获取文本。在Firefox和Chrome中都不是UTF-8;在没有其他线索的情况下,浏览器将尝试读取您的文档,就好像它是ASCII码一样来获取编码,因此您不能使用任何奇怪的编码(不过,带BOM的UTF-16应该可以);虽然规范规定编码声明必须在文档的前512字节内,但大多数浏览器都会尝试读取更多。
您可以通过运行echo“HTTP/1.1 200 OK”进行测试\r\n内容类型:text/html;charset=windows-1251\r\n\r\nxef\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。(当然,您需要更改或删除零件。BOM零件是\xef\xbb\xbf。请注意外壳的编码。)
请注意,显式声明编码非常重要。让浏览器猜测可能会导致安全问题。
在HTML5中,它们是等价的。使用较短的,因为它更容易记忆和打字。浏览器支持很好,因为它是为向后兼容而设计的。