php中unlink删除中文名文件会出错

<?phpfunctiondeldir($dirname){if(file_exists($dirname)){if($dir_handle=@opendir($dirn... <?php
function deldir($dirname){
if(file_exists($dirname))
{
if($dir_handle=@opendir($dirname))
{
while($file=readdir($dir_handle))
{
if($file!='.'&&$file!='..')
{
$subfile=$dirname."/".$file;
if(is_dir($subfile))
deldir($subfile);
if(is_file($subfile))
unlink($subfile);
}
}
closedir($dir_handle);
rmdir($dirname);
}
}
}

/*有个文件夹aaa,里面有个txt文件“我是谁”,写个删除目录函数,可以删除整个aaa文件夹(包括里面的txt文件),但是单独用unlink删aaa除文件夹里面的中文名的文件就会出错,是什么问题??代码是UTF-8的,用iconv转换成GB2312就可以删除,但是上面的函数里的unlink($subfile)不用转换也可以删除,为什么?*/
deldir('aaa');//iconv('UTF-8','GB2312','aaa/我是谁.txt')
unlink('aaa/我是谁.txt');
?>
展开
 我来答
IT互联天下
推荐于2016-06-16 · 知道合伙人软件行家
IT互联天下
知道合伙人软件行家
采纳数:1437 获赞数:5161
PHP开发工程师

向TA提问 私信TA
展开全部

  PHP 中使用unlink函数删除中文名文件的时候,一定要注意编码格式,否则会删除失败。在删除之前,应该先进行编码转换。示例如下:

<?php 
//对文件路径进行编码转换
$path = iconv('utf-8', 'gbk', '安装说明.txt');

//删除
unlink($path);

echo "删除成功!";
//执行结果:删除成功!

?>
jiangxibaiyi
2013-03-23 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14412

向TA提问 私信TA
展开全部
对于文件名称或者路径,如果不是逼不得已,最好不要使用中文,特别是在utf8编码下
否则,只会给自己找麻烦,这不,你纠结得到这里提问来了吧
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王道王道dM
2013-03-23 · TA获得超过781个赞
知道小有建树答主
回答量:694
采纳率:50%
帮助的人:411万
展开全部
应该你的路径有问题,检查一下,最好把出错的提示信息发上来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式