| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7220 人关注过本帖
标题:php读取中文目录乱码
只看楼主 加入收藏
asmdaydream
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:中原
等 级:版主
威 望:13
帖 子:257
专家分:840
注 册:2009-5-10
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:9 
php读取中文目录乱码
读取文件夹的时候,中文目录出现乱码了
我都php文件都是utf-8的,在windows中文系统下面
在网上查了好长时间都没有解决
代码如下,各位帮忙看看吧,谢谢了
   
程序代码:
 $dir = iconv("UTF-8","gb2312",$dir);        
    $dirs = opendir($dir);
    while($loopfile = readdir($dirs))
    {
        if(true == is_dir($dir.$loopfile) ){
            printf("  Dir:%s<br>",$loopfile);
        }else{ 
            printf("  File:%s<br>",$loopfile);
        }
    }//end while


[ 本帖最后由 asmdaydream 于 2010-9-4 10:51 编辑 ]
搜索更多相关主题的帖子: 中文 目录 php 乱码 
2010-09-04 10:50
gupiao175
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:10 
$dir = iconv("UTF-8","gb2312",$dir);  //这句去掉试过没有,或者颠倒过来写 iconv("gb2312","UTF-8",$dir);     
    $dirs = opendir($dir);
    while($loopfile = readdir($dirs))
    {
        if(true == is_dir($dir.$loopfile) ){
            printf("  Dir:%s<br>",$loopfile);
        }else{
            printf("  File:%s<br>",$loopfile);
        }
    }//end while
多尝试下,甚至可以把文件本身的编码也修改!
我的测试过你这个代码,就是什么编码转换也没加,显示中文正常!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-09-04 13:54
asmdaydream
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:中原
等 级:版主
威 望:13
帖 子:257
专家分:840
注 册:2009-5-10
收藏
得分:0 
本来是没有这句的,后来查了很多资料才找到这句,
这句加上也没有影响什么,设置里面的编码我都换过好几种了,
找不到完美解决的办法

常走夜路不怕黑 长沙PHP高薪招聘群6K+ 95926136
2010-09-04 23:52
gupiao175
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:0 
怪事了,我的只是在目录里建立一个记事本,然后随便输入几句打开的命令,就OK了.什么编码也没有设置,中文显示正常!
我的代码如下:
echo "文件:<br>";
$ha=opendir('e:/wdfmdb');
while ($file=readdir($ha))
{
   if ($file != "." && $file != "..") {
     $arr[]=$file;//附加到数组里
        }
}
closedir($ha);
print_r("<pre>");
print_r($arr);
print_r("</pre>");
你用这个代码试试!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-09-05 15:07
asmdaydream
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:中原
等 级:版主
威 望:13
帖 子:257
专家分:840
注 册:2009-5-10
收藏
得分:0 
试过了,中文也是乱码

    [23] => Wopti
    [24] => wow
    [25] => www
    [26] => [05-12-15]��������
    [27] => �߲����˹��߰�
    [28] => ����
    [29] => �漣Ӣ�����ܼ���
    [30] => �����ܼ�
    [31] => ������������

常走夜路不怕黑 长沙PHP高薪招聘群6K+ 95926136
2010-09-05 15:21
asmdaydream
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:中原
等 级:版主
威 望:13
帖 子:257
专家分:840
注 册:2009-5-10
收藏
得分:0 
估计和我系统有什么的有关吧

常走夜路不怕黑 长沙PHP高薪招聘群6K+ 95926136
2010-09-05 15:22
cnenc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:35
帖 子:2913
专家分:514
注 册:2007-1-29
收藏
得分:10 
编码问题.
可以用 iconv 解决.

建议, 永远不用要中文来做文件名. 那只会是悲剧的开始.没有终点的悲剧.
2010-09-06 16:36
asmdaydream
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:中原
等 级:版主
威 望:13
帖 子:257
专家分:840
注 册:2009-5-10
收藏
得分:0 
iconv也没能解决,只能换成gb2312的编码,或到linux下面去utf-8,郁闷啊~~~~~~
又不是外国人,怎么能做到一个电脑上全是英文的东西

常走夜路不怕黑 长沙PHP高薪招聘群6K+ 95926136
2010-09-07 00:04
tbwind
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-10-8
收藏
得分:0 
刚学PHP,专门注册来回这个老贴。
这个问题不难吧
程序代码:
$dir = iconv("UTF-8","gb2312",$dir);        
    $dirs = opendir($dir);
    while($loopfile = readdir($dirs))
    {
        if(true == is_dir($dir.$loopfile) ){
            printf("  Dir:%s<br>",iconv("gb2312","UTF-8",$loopfile));
        }else{ 
            printf("  File:%s<br>",iconv("gb2312","UTF-8",$loopfile));
        }
    }//end while
2014-10-08 09:10
快速回复:php读取中文目录乱码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016291 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved