2011-08-15 51 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