PHP 解压缩中文文件名乱码

已举报 回答 关注
PHP 解压缩中文文件名乱码
问在线客服
扫码问在线客服
  • 回答数

    7

  • 浏览数

    6,275

7个回答 默认排序
  • 默认排序
  • 按时间排序

你的系统和输入法不一致,简体和繁体要统一
调整好了以后再重新压缩一下文件看看...
取消 评论
改成用时间来命名
取消 评论
substr只提供字符提取功能,没有提供字符过滤功能
如果你要过滤数字的话,可以用str_replace函数
如果你要过滤数字就这么写
$number = array("0","1","2","3","4","5","6","7","8","9");
str_replace($number,"",substr(md5(time()),0,5))

这样,就是提当前时间的md5前5个字符,如果存在数字则将其替换成空字符串 比如2ef3c将变成 efc
字幕方法类似!

如果判断mysql有重复记录得看你数据库结构和你这个重复的标准是什么,没具体例子,不好说明
取消 评论
什么操作系统?
取消 评论
window是用的GB2312的编码,你的php文件应该用的是UTF-8,所以正如你写的那样,先要转换编码$dir=iconv("utf-8","gb2312",$dir);
但你别忘了,你用的是UTF-8的编码,所以你第六行写错了,把GB2312转换为UTF-8搞倒了吧
<?phpfunction 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");?>
取消 评论
应该是
你的服务器不支持中文吧
你服务器的客户端,比如ssh不支持中文

最终你看到的中文是乱码
取消 评论
两个解决办法:
第一,不使用中文文件名;
第二,对文件名进行编码转换,然后mb_substr就不会出现乱码了。
取消 评论
ZOL问答 > PHP 解压缩中文文件名乱码

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?