Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改Apache索引的字符集响应头_Apache_Utf 8_Character Encoding_Indexing - Fatal编程技术网

更改Apache索引的字符集响应头

更改Apache索引的字符集响应头,apache,utf-8,character-encoding,indexing,Apache,Utf 8,Character Encoding,Indexing,我试图在本地apache服务器上设置更改自动生成的文件索引;我的一些文件和文件夹具有utf-8字符,如» 这应该不是问题,因为html头的字符集设置为utf-8。php文件已在utf-8中编码。我甚至在Apache服务器的httpd.conf中将“AddDefaultCharset”设置为off,但是当我尝试加载任何页面时,我得到了“内容类型:text/html;响应标题中的charset=ISO-8859-1 是什么导致了这种情况,我如何阻止它?对于html 将以下内容放在标记之间: <

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

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


是什么导致了这种情况,我如何阻止它?

对于html
将以下内容放在
标记之间:

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

用于xhtml
将以下内容放在
标记之间:

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

以以下内容开始您的php文件:

<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ?>

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

IndexOptions Charset=UTF-8
这个给我修好了

当响应标题的内容类型为text/plain或text/html时使用
在.htaccess或httpd.conf中,您可以添加:

AddDefaultCharset utf-8
AddCharset utf-8 .html .css .php .txt .js
是为任何给定的文件扩展名定义字符集

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

AddDefaultCharset utf-8
AddCharset utf-8 .html .css .php .txt .js
在PHP中(在输出任何页面内容之前):


这就是我在标题中所说的html,我已经为utf-8设置了meta标记。我认为这个问题与Apache服务器有关,因为在浏览器查看我的html或php之前,在响应头中设置了字符集。谢谢,这给了我解决这个问题所需的提示!将服务器从CentOS 6上的apache 2.2迁移到CentOS 7上的2.4时,我遇到了同样的问题。旧服务器在其
httpd.conf
中有
IndexOptions Charset=UTF-8
(我想是默认情况下吧?)。CentOs 7上的全新apache 2.4在
conf.d/autoindex.conf
中缺少charset选项。修正了,我已经添加了它!