2011-03-06 59 views
4

我試圖在本地apache服務器上設置windex以更改自動生成的文件索引;我的一些文件和文件夾具有UTF-8字符,如»。更改Apache索引的字符集響應標頭

這應該不是問題,因爲html標題的字符集設置爲utf-8。 php文件已經在utf-8中編碼。我甚至在我的Apache服務器的httpd.conf中設置了'AddDefaultCharset',但是當我嘗試加載任何頁面時,我在響應頭文件中獲得'Content-Type:text/html;charset=ISO-8859-1'。

這是什麼原因造成的,我該如何阻止它?

回答

10

原來,Apache有一個單獨的設置來編碼它生成的索引。您可以通過添加此行到.htaccess文件,放在目錄將在其中生成索引設置索引字符集:

IndexOptions Charset=UTF-8 

這個固定爲我!

AddDefaultCharset utf-8 

AddCharset是定義字符設置:

-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" ?> 
+0

這就是我在標題中用html表示的意思,我已經將meta標籤設置爲utf-8。我認爲這個問題與Apache服務器有關,因爲在瀏覽器查看我的任何html或php之前,charset已經設置在響應頭中。 – elstgav 2011-03-06 21:48:14

0

AddDefaultCharset當響應頭的Content-Type爲text/plain text/html或
在.htaccess或httpd.conf中可以添加用於任何給定文件擴展名。

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

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

在PHP(之前的任何頁面內容輸出):

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

如果HAVE使用HTML元標籤(無法編輯配置或htaccess)它必須是第一件事跟在<head>
參考:Best Practice: Get your HEAD in order

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