Php zip存档中的文件名编码会截断名称

Php zip存档中的文件名编码会截断名称,php,zip,ziparchive,iconv,Php,Zip,Ziparchive,Iconv,我正在创建一个档案,其中的文件名可以包含西里尔文。 为了正确显示,我使用以下方法: $files = Array(...); $zip = new ZipArchive; $zip->open($zipname, ZipArchive::CREATE); for ($i = 0; $i <= sizeof($files); $i++) { $fn = basename($files[$i]); $fileName = iconv('UTF8', 'CP866',

我正在创建一个档案,其中的文件名可以包含西里尔文。 为了正确显示,我使用以下方法:

$files = Array(...);

$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);

for ($i = 0; $i <= sizeof($files); $i++) {
    $fn = basename($files[$i]);
    $fileName = iconv('UTF8', 'CP866', $fn);
    $zip->addFile($files[$i], $fileName);
}
$zip->close();
$files=Array(…);
$zip=新的ZipArchive;
$zip->open($zipname,ZipArchive::CREATE);
对于($i=0;$i addFile($files[$i],$fileName);
}
$zip->close();
但是,在归档文件的输出中,如果有一个特定的字母,我会得到被截断的名称,也就是说,名称在它之前被截断,例如:

文件->zip格式的“Мццццццц.txt”输出

文件->以zip格式输出的“-öбааааааааа.txt”

如果没有此类信件,则一切正常:

文件->以zip格式输出的“азззззззСзСаззззззззззззз

告诉我问题出在哪里,或者有人知道答案