2 回答
第一个AddCharset
, 告诉服务器以 UTF-8 结尾的文件.html
应该说是用 UTF-8 编码的。
第二个给出了完整Content-Type
的 HTML 文件,包括 MIME 类型和字符集。这应该不是必需的,因为 Apache 应该已经配置为将.html
文件作为text/html
.
第三个,AddDefaultCharset
设置所有文件类型的默认字符集,而不仅仅是 HTML。因此,例如,文本文档、XML 文档、样式表等将使用UTF-8
列出的字符集提供服务。这是我推荐的;默认情况下,您应该将所有文档保存为 UTF-8,因此即使您的所有文档现在都是 HTML,如果您稍后添加它们,这将保留为其他类型文件配置的正确字符集。
最后一个不是 Apache 配置;如果您设置了上述选项之一,则它是应与您的文档一起发送的实际标题。您可以检查在 Firefox 上的 Firebug 或其他浏览器提供的各种开发人员工具中发送的标头。你应该总是有一个Content-Type:
标题,如果你的文本是用 UTF-8 编码的,它应该总是指定charset=UTF-8
.
请注意,meta
如果您通过标题适当地设置字符集,则不需要该标记。meta
如果您要在本地查看文件,而不需要 Web 服务器,拥有标签仍然很好;在这种情况下,无需设置标头,因此浏览器需要退回到meta
标签。但是为了这个目的,你可以使用更短更简单的meta
标签:<meta charset=utf-8>
. 这种缩写形式是在 HTML5 中正式引入的,但实际上浏览器支持它的时间要长得多,它兼容所有现代浏览器,甚至可以追溯到 IE 6。
另一种可能性是重写引擎(在这种情况下,匹配无扩展 URL):
RewriteEngine on
RewriteRule ^([^.]*)$ $1 [type=text/html]