php ziparchive中文亂碼的解決方法:先打開壓縮包將內部檔名及目錄進行轉碼;然後在轉碼後關閉壓縮包並重新打開解壓即可。
本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦
解決php使用ZipArchive解壓縮時中文亂碼問題
使用php自帶的ZipArchive來解壓縮帶中文檔名壓縮包時會造成亂碼,現像如下:
解壓縮程式碼:
$zip = new \ZipArchive(); $res = $zip->open('./钱学森班.zip'); if ($res !== true){ throw new \Exception('打开压缩包失败'); }$zip->extractTo('./cache'); $zip->close();
$zipName = './钱学森班.zip'; $zip = new \ZipArchive(); $res = $zip->open($zipName); if ($res !== true){ throw new \Exception('打开压缩包失败'); } // 加入此段↓ $fileNum = $zip->numFiles; for ($i = 0; $i < $fileNum; $i++) { $statInfo = $zip->statIndex($i, ZipArchive::FL_ENC_RAW); $zip->renameIndex($i, iconv('GBK', 'utf-8//IGNORE', $statInfo['name'])); } $zip->close(); $zip->open($zipName); // 截至↑ $zip->extractTo($extractTo); $zip->close();注意事項
PHP影片教學》
以上是php ziparchive中文亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!