Я использую класс php ZipArchive для создания zip-архива. Я использую второй параметр метода addFile, чтобы установить имя файла в архиве (поскольку реальный файл на диске имеет другое имя). Некоторые имена должны содержать французские акценты (например, é). Когда я загружаю архив, акценты отображаются неправильно в имени файла. Какую кодировку следует использовать для имен файлов? (приложение использует UTF-8)
Это ошибка php # 53948, см. Официальный отчет об ошибке .
Предлагаемое обходное решение (работало для меня):
$zip->addFile($file, iconv("UTF-8", "CP852", $local_name));
Zip-файлы не имеют указанной кодировки; инструмент архива должен угадать (или предположить) используемую кодировку. Сначала попробуйте CP1252, затем оттуда.
Используйте DOS-кодировку. Мои имена файлов имеют кириллические символы, поэтому я кодирую имена файлов из cp1251
(Windows) в cp866
(DOS), передавая имя файла в $zip->addFile()
.