這種問題可能是由於文件名編碼不同造成的。在 Linux 中,通常使用 UTF-8 編碼,而在 Windows 中,通常使用 GBK 或者 UTF-16 編碼。
您可以嘗試以下方法解決這個問題:
將 PHP 腳本中下載的文件的編碼轉換爲 UTF-8,這樣在 Windows 上解壓縮後就能正確顯示中文文件名了。可以使用 iconv 或者 mb_convert_encoding 等函數實現編碼轉換。
在下載文件時,指定文件名的編碼爲 UTF-8。在 PHP 中,可以使用 urlencode 函數將中文文件名進行編碼,然後在下載時指定編碼,例如:
header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . urlencode($filename) . '"; filename*=utf-8\'\'' . urlencode($filename)); readfile($filepath);這樣下載到 Windows 後,解壓縮工具就可以正確識別中文文件名了。
- 在 Windows 上安裝支持 UTF-8 編碼的解壓縮工具,例如 7-Zip。這樣即使文件名編碼不同,解壓縮工具也能正確識別中文文件名。
希望這些方法可以幫助您解決問題。