开发者

What encoding does ZipArchive use to store file names inside the created archive?

开发者 https://www.devze.com 2023-02-10 09:25 出处:网络
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 (si

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号