请选择 进入手机版 | 继续访问电脑版
 找回密码
 注册
首页 ≡≡网络技术≡≡ PHP语言 php遍历到的文件是中文文件名 显示为乱码 该如何解决 ...

PHP php遍历到的文件是中文文件名 显示为乱码 该如何解决

灰儿 2017-2-18 09:52:23
用了mb_convert_encoding和iconv函数编码转换都不行,php文件编码是UTF-8。


我的dreamweaver环境是utf-8,当我查询中文目录时出现的是打不开路径的情况,这时我就将中文路径进行转码!

$path = "F:\\办公";
$path = iconv("utf-8","gbk",$path);


这样就能顺利打开中文路径,当我查出来的文件是中文标题时又出现问题,这是我再将其进行转码

if($dire = scandir($path)){
   foreach($dire as $value){
    $value = iconv("gbk","utf-8",$value);
    echo $value."<br>";
   }
  }

总的代码是

<?     
$path = "F:\\办公";
$path = iconv("utf-8","gbk",$path);
if(is_dir($path)){
  if($dire = scandir($path)){
   foreach($dire as $value){
    $value = iconv("gbk","utf-8",$value);
    echo $value."<br>";
   }
  }else{
   echo "没有打开文件夹";
  }
}else{
  echo "不是路径";
}
?>


------------------------------------------------------------------------------------------


<?php

function refresh($dir){
//        $dir=iconv("utf-8","gb2312",$dir);
if ($headle=opendir($dir)){
while (false!==$file=readdir($headle)){
$file=iconv("utf-8","gb2312",$file);
if ($file!='.' && $file!='..'){
echo "文件".$file."在文件夹".$dir."下<br />";
}
}
closedir($headle);
}
}
refresh("D:/AppServ/www/test");
?>
在test文件夹下的文件有中文名字


window是用的GB2312的编码,你的php文件应该用的是UTF-8,所以正如你写的那样,先要转换编码$dir=iconv("utf-8","gb2312",$dir);
但你别忘了,你用的是UTF-8的编码,所以你第六行写错了,把GB2312转换为UTF-8搞倒了吧

<?<a href="https://www.baidu.com/s?wd=php&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBPjcYnjI9PWbkuW9hP10v0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHnvP1DsrjckrjDsn1m1Pjf4rf" target="_blank" class="baidu-highlight">php</a>
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");
?>




遍历windows下的某个目录,将文件目录或文件显示出来。
<?phpini_set('display_errors', 1);$dir_handle=opendir("D:\\UPUPW_AP5.5\\temp\\");//var_dump(mb_detect_order());while(($readdir=readdir($dir_handle))!=false){    $newchar=mb_convert_encoding($readdir,"gb2312","UTF-8");    $char=iconv("UTF-8","gb2312",$readdir);    echo $readdir."<br/>";}closedir($dir_handle);?>
用了mb_convert_encoding和iconv函数编码转换都不行,php文件编码是UTF-8。


您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。