php读取中文目录乱码的解决办法

前不久有个项目涉及到使用 php 读取文件目录,读取文件目录这个本身没什么问题,但读取的时候遇到中文目录竟然发生乱码了,一时不知道怎么办了,很久没有碰到这种问题了,研究了一番,得出几种解决办法,现列举一下(将使用 php 读取文件目录的方法也一并附上):

  1. <?php 
  2. //要读取的目录 
  3. $folder="D:/www"
  4. //打开目录 
  5. $fp=opendir($folder); 
  6. //阅读目录 
  7. while(false!=$file=readdir($fp)){ 
  8.     //列出所有文件并去掉'.'和'..' 
  9.     if($file!='.' &&$file!='..'){ 
  10.     //$file="$folder/$file"; 
  11.         $file="$file"
  12.         //赋值给数组 
  13.         $arr_file[]=$file
  14.     } 
  15. //输出结果 
  16. if(is_array($arr_file)){ 
  17.     while(list($key,$value)=each($arr_file)){ 
  18.         echo "$key=>$value<br>"
  19.     } 
  20. //关闭目录 
  21. closedir($fp); 
  22. ?> 

(1)在输出前做一个转换,加上如下代码:

  1. $value = iconv("UTF-8","gb2312",$value);  //或者 iconv("gb2312","UTF-8",$value); 

(2)所有文件编码都统一为 UTF-8 或者 gb2312

转载请注明:代码家园 » php读取中文目录乱码的解决办法

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)