6

我正在使用 php ZipArchive 类来生成一个 zip 存档。我使用 addFile 方法的第二个参数来设置存档中文件的名称(因为磁盘上的真实文件具有不同的名称)。某些名称必须包含法语口音(例如 é)。当我下载档案时,文件名中没有正确显示重音符号。我应该为文件名使用什么编码?(应用程序使用 UTF-8)

4

4 回答 4

9

这是 php 错误 #53948,请参阅官方错误报告

建议的解决方法(对我有用):

$zip->addFile($file, iconv("UTF-8", "CP852", $local_name));
于 2012-10-05T21:07:58.477 回答
4

使用 DOS 编码。我的文件名有西里尔字符,所以我将文件名从cp1251(Windows) 编码到cp866(DOS),在将文件名传递给$zip->addFile().

于 2012-08-16T04:30:22.923 回答
2

Zip 文件没有指定的编码;存档工具必须猜测(或假设)使用的编码。先尝试CP1252,然后再从那里开始。

于 2011-02-15T15:03:22.423 回答
0

取决于 Windows 系统,例如法语,Windows 的内部 zipIBM850用作编码。

于 2020-07-20T03:43:24.300 回答