我将通过一个使用UTF-8编码的php脚本创建一些.txt文件(带有希腊字符)。当我尝试从ftp下载并阅读这些文件时,一切都很顺利(没有编码问题)。
但是,当我将这些文件压缩到zip归档文件中时,我遇到了所有希腊字符和新行字符的编码问题。
zip脚本:
$zip = new ZipArchive();
$filename = "my_zip.zip";
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}
$files = glob('users/'.$_SESSION['s_uid'].'/*'); // get all file names
foreach($files as $file){ // iterate files
if(is_file($file))
//$zip->addFile($thisdir . $file, basename($file));
$zip->addFile($thisdir . $file, iconv("UTF-8","UTF-8", basename($file)));
//echo $file; // delete file
}
$zip->close();
iconv("UTF-8","UTF-8", str)
没有任何作用(例如返回str
),除非str
包含无效的 UTF-8 序列,此时会返回空字符串。您是在 ZIP 文件中遇到文件名问题还是文件内容问题? - dnet