Linux php zip 中文乱码

中文win32下,文件名使用GBK编码
Linux下,文件名使用UTF-8编码

解决文件名解压后乱码的问题,使用将文件名进行转码

  <?php
  $a=zip_open('other.zip');
  while ($e=zip_read($a)){
      $fz = zip_entry_filesize($e);
      $fn = iconv('GBK','UTF-8',zip_entry_name($e));
      if (!$fz){//dir
          mkdir($fn);
          continue;
      }
      if (!zip_entry_open($a, $e))
          continue;
      file_put_contents($fn, zip_entry_read($e, $fz));
      echo "$fz\t$fn\n";
      zip_entry_close($e);
  }
  zip_close($a);
  ?>

你可能感兴趣的:(PHP,linux)