更改Apache索引的Charset响应标头

时间:2011-03-06 05:23:17

标签: apache utf-8 character-encoding indexing

我正在尝试在我的本地apache服务器上设置windex以更改自动生成的文件索引;我的一些文件和文件夹有utf-8字符,例如»。

这应该不是问题,因为html标头的字符集设置为utf-8。 php文件已在utf-8中编码。我甚至在我的httpd.conf中为Apache服务器设置了'AddDefaultCharset',但是当我尝试加载任何页面时,我在响应头中得到'Content-Type:text/html;charset=ISO-8859-1'。

造成这种情况的原因是什么,如何阻止它?

3 个答案:

答案 0 :(得分:11)

事实证明,Apache有一个单独的设置来编码它生成的索引。您可以通过将此行添加到.htaccess文件中来设置索引的字符集,该文件放在将生成索引的目录中:

IndexOptions Charset=UTF-8

这为我修好了!

答案 1 :(得分:0)

当响应标头的内容类型为text / plain或text / html时,使用

AddDefaultCharset 在.htaccess或httpd.conf中,您可以添加:

AddDefaultCharset utf-8

AddCharset用于定义任何给定文件扩展名的字符集。

在.htaccess或httpd.conf中,您可以添加:

AddCharset utf-8 .html .css .php .txt .js

在PHP中(在输出任何页面内容之前):

<?php
header('Content-Type: text/html; charset=utf-8'); 

如果您使用HTML元标记(无法编辑配置或htaccess),那么它必须是<head>之后的第一件事。 参考:Best Practice: Get your HEAD in order

<head><meta http-equiv="content-type" content="text/html; charset=UTF-8">

答案 2 :(得分:-1)

对于html
将以下内容放在<head> </head>标记之间:

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

对于xhtml
将以下内容放在<head> </head>标记之间:

<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>

用:

开始你的php文件
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ?>