我看你的程序
1.$fopen没有使用到,创建的目的是什么?
2.is_dir($path.$file);显示空,因为is_dir是判断是否目录,而$path.$file是文件,因此返回false。如果只是需要读出123.txt的内容显示,可以这样写。<?php
$path = iconv("UTF-8", "GBK", dirname(__FILE__).'/新建文件夹/');
$file = '123.txt';echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';
echo file_get_contents($path.$file);
?>关键是<meta http-equiv="content-type" content="text/html; charset=utf8"> 这句,设置页面编码。
2.如果要数据库保存不乱码,可以设置mysql
character_set_client:客户端来源数据使用的字符集
character_set_connection:连接层字符集
character_set_results:查询结果字符集
为utf8,
关于mysql 编码设置可以参考 http://blog.csdn.net/fdipzone/article/details/18180325

解决方案 »

  1.   

    谢谢楼上两位的回答
    F:/新建文件夹/内只有一个名为的文件夹,我的程序就是为了遍历F:/新建文件夹/内的所有文件夹并输出,fopen只是为了测试能不能将文件夹名正确输出到txt中,用is_dir是为了判断?是真问号(ASCII的63)还是假问号(不是ASCII的63,只是显示不出来),而结果is_dir($path.$file)为false说明php没找到这个文件夹。另外,我试过你们说的方法,是可以正常输出到网页或者txt的;但是如果在扫描文件夹的子文件夹时,如果某个子文件夹A名含特殊字符,那么$dir->read()将会用?取代特殊符号,导致我不能继续遍历这个文件夹A内的子文件,我估计问题出在了$dir->read()这一步,请问应该如何解决呢?谢谢!