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

问题描述

我正在创建一个归档文件,其中文件名可以包含西里尔字母。 为了正确显示,我使用以下内容:

$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();

但是,在归档文件的输出中,我得到了截断的名称,如果有一个特定的字母,即名称在其前面被截断了,例如:

file -> "Моя история.txt" output in zip -> "история.txt"

file -> "Домой-обратно.txt" output in zip -> "-обратно.txt"

如果没有这样的字母,那么一切都很好:

file -> " Разлив и Сестрорецк 14.10.2020.txt" output in zip -> " Разлив и Сестрорецк 14.10.2020.txt"

告诉我可能是什么问题,或者有人知道解决方案?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...