相当于meta http-equiv="Content-Type" content="text/html; charset=utf-8"
的htacces是什么? Yslow说我应该把它放在我的htacces中。我在appache服务器上。
好的,我在这里看到了我的答案。哪个代码合适呢?我的网站上只有html扩展名。 http://www.askapache.com/htaccess/setting-charset-in-htaccess.html
AddCharset UTF-8 .html
VS
AddType 'text/html; charset=UTF-8' html
VS
AddDefaultCharset UTF-8
VS
Content-Type: text/html; charset=UTF-8
答案 0 :(得分:2)
第一个AddCharset
告诉服务器,应该说以.html
结尾的文件以UTF-8编码。
第二个为HTML文件提供完整的Content-Type
,包括MIME类型和字符集。这不是必需的,因为Apache应该已经配置为以.html
的形式提供text/html
个文件。
第三个AddDefaultCharset
设置所有文件类型的默认字符集,而不仅仅是HTML。因此,例如,文本文档,XML文档,样式表等将与列出的UTF-8
字符集一起提供。这是我建议的;默认情况下,您应该默认使用UTF-8保存所有文档,因此即使您的所有文档都是HTML,如果稍后添加它们,也会为其他类型的文件保留正确的字符集。
最后一个不是Apache配置;如果您设置了上述选项之一,它应该与您的文档一起发送的实际标题。您可以检查Firefox上Firebug中发送的标头,或其他浏览器提供的各种开发人员工具。您应始终拥有Content-Type:
标头,如果您的文字采用UTF-8编码,则应始终指定charset=UTF-8
。
请注意,如果通过标头正确设置字符集,则不需要meta
标记。如果要在没有Web服务器的情况下在本地查看文件,那么拥有meta
标记仍然很好;在这种情况下,没有任何东西可以设置标题,因此浏览器需要回退meta
标记。但为此,您可以使用更短更简单的meta
标记:<meta charset=utf-8>
。这种缩写形式在HTML5中正式引入,但浏览器实际上支持它的时间更长,并且它与所有现代浏览器兼容,甚至回到IE 6。
答案 1 :(得分:1)
另一种可能性是重写引擎(在这种情况下,匹配无扩展名的URL):
RewriteEngine on
RewriteRule ^([^.]*)$ $1 [type=text/html]