What encoding does ZipArchive use to store file names inside the created archive?
I'm using the php ZipArchive class in order to generate a zip archive. I use the second parameter of the addFile method in order to set th开发者_StackOverflow社区e name of the file in the archive (since the real file on disk has a different name). Some of the names must contain french accents (such as é). When I download the archive, the accents aren't correctly displayed in the file name. What encoding should I use for the file names ? (the application uses UTF-8)
It is php bug #53948, see official bug report.
Suggested workaround (worked for me):
$zip->addFile($file, iconv("UTF-8", "CP852", $local_name));
Use DOS encoding. My file names has cyrillic characters, so I'm encoding the file names from cp1251
(Windows) to cp866
(DOS), upon passing the filename to $zip->addFile()
.
Zip files don't have a specified encoding; the archive tool must guess (or assume) the encoding used. Try CP1252 first, then go from there.
Depends on the Windows system e.g French, internal zip of Windows use IBM850
as encoding.
精彩评论