2011-08-15 71 views
1

在用php拉出來後,我有一個名稱爲「同」的文件夾(無論使用哪個字符或多少個字符)顯示不正確的字符或亂碼文本。UTF8在PHP處理後無法正確顯示

<?php 
mb_internal_encoding('utf-8'); 
if ($handle = opendir('.')) { 
while (false !== ($file = readdir($handle))) { 
    if ($file != "." && $file != "..") { 
     echo $file; 
    } 
} 
closedir($handle); 
} 
echo "同"; 
?> 

返回:

Folder1index.php��同 

它顯示2 '字符',如果它不被編碼爲UTF-8正常。由於所討論字符的回聲,瀏覽器正在處理頁面的格式爲UTF-8。

這是一個PHP /代碼問題,或者是別的東西阻止其正常顯示(IIS等)

+0

哪種編碼是您的文件系統使用的文件和目錄名稱? – hakre

回答

2

問題不在於腳本或網站的UTF-8編碼,問題大多數是文件系統中文件名的編碼。

您首先需要了解在文件系統級別使用哪種編碼。如果您知道可以將編碼的文件名重新編碼爲UTF-8(例如iconv; mb_convert_encoding)。他們會在您的網站上顯示正常。

你寫你使用IIS,所以我假設你在Windows上運行。有關更多信息,請參閱this related answer和/或相關問題What encoding are filenames in NTFS stored as?

+0

看着上面的iconv和mb_convert_encoding能夠解決我的問題。謝謝。 – Mattish