本帖最后由 who_SX 于 2012-05-24 16:21:55 编辑

解决方案 »

  1.   

    你是不是转错编码了?
    $fname = iconv("gbk", "UTF-8", “文件名”); 这样呢?
      

  2.   


    $fname = iconv("gbk", "UTF-8", “文件名”);这个是压缩包的文件名转码,这个是正确的,就是解压后文件夹里面的文件名乱码了
      

  3.   

    擦,到底哪个是正确的?
    如果$fname = iconv("gbk", "UTF-8", “文件名”);只是将文件名转成乱码,而内容正常,那么你完全可以用英文名代替文件名,子文件就不用动了。
      

  4.   


    $fname是zip压缩文件的文件名,$fname = iconv("UTF-8", "gbk", “文件名”);这一步只是转zip解压后的文件名,decompress()返回的是解压后的文件数组,现在就是数组里面文件名乱码了。在Zip.class.php文件里面数据文件名也是正确的,但转成文件夹就乱码了,不知道什么原因。
      

  5.   

    windows上的文件名默认是GBK编码,按你的需求转,要么就别转,保持原样
      

  6.   


    $fname = iconv("gbk", "UTF-8", “文件名”);是转最外面文件名的编码格式,显示中文名是好的,比如说现在有个”压缩.zip“文件,它里面有”压缩1.txt“、”压缩2.txt“、”压缩3.txt“,解压后是名为”压缩“的文件夹名称没有乱码,是正确的,而”压缩1.txt“、”压缩2.txt“、”压缩3.txt“的名称乱码了。
      

  7.   


    $fname = iconv("gbk", "UTF-8", “文件名”);文件名识别不出,都解压不了