在使用 Pclzip 時出現沒法壓縮/解壓文件的現象,追蹤錯誤信息發現沒法打開文件/目錄,可是文件夾權限正確,打印文件路徑以後發現是亂碼。出現這個問題的緣由是 windows下zip內的文件名編碼是 gb2312,而php使用的是 utf-8 編碼。解決辦法是修改 pclzip.php 類文件:php
壓縮文件部分修改:html
privAddFile 方法中的:linux
//$p_header['stored_filename'] = $p_filedescr['stored_filename'];windows
// 修改成下面一行編碼
$p_header['stored_filename'] = mb_convert_encoding( $p_filedescr['stored_filename'],'GB2312','UTF-8');htm
解壓文件部分修改:教程
privExtractFile 方法中的:ip
$p_entry['filename'] = $p_path."/".$p_entry['filename'];utf-8
// 加入下面一行get
$p_entry['filename'] = mb_convert_encoding($p_entry['filename'], 'UTF-8', 'gb2312');