位置:首页 » 文章/教程分享 » php遍历到的文件是中文文件名显示为乱码的处理方法

如果window是用的GB2312的编码,php文件用的是UTF-8,则php遍历到的文件名显示为乱码,所以先要转换编码

$dir=iconv("utf-8","gb2312",$dir);

同理,如果你php代码中用到了或者传递了utf-8的文本,则调用opendir这类的函数需要反过来再编码。

$file=iconv("gb2312","utf-8",$file);
完整的代码如下,供大家参考。
<?php
function refresh($dir){
    $dir=iconv("utf-8","gb2312",$dir);
    if ($headle=opendir($dir)){
        while ($file=readdir($headle)){
            $file=iconv("gb2312","utf-8",$file); 
            if ($file!='.' && $file!='..'){
                echo "文件".$file."在文件夹".$dir."下<br />";
            }
        }
        closedir($headle);
    }
}
refresh("D:/AppServ/www/test");
?>