Какую кодировку использует ZipArchive для хранения имен файлов внутри созданного архива? - PullRequest
6 голосов
/ 15 февраля 2011

Я использую класс php ZipArchive для создания zip-архива.Я использую второй параметр метода addFile, чтобы установить имя файла в архиве (поскольку реальный файл на диске имеет другое имя).Некоторые из имен должны содержать французские акценты (такие как é).Когда я загружаю архив, акценты неправильно отображаются в имени файла.Какую кодировку я должен использовать для имен файлов?(приложение использует UTF-8)

Ответы [ 3 ]

9 голосов
/ 06 октября 2012

Это ошибка php # 53948, см. официальный отчет об ошибках .

Предлагаемый обходной путь (работал для меня):

$zip->addFile($file, iconv("UTF-8", "CP852", $local_name));
4 голосов
/ 16 августа 2012

Использовать кодировку DOS. Мои имена файлов имеют кириллические символы, поэтому я кодирую имена файлов от cp1251 (Windows) до cp866 (DOS), передавая имя файла $zip->addFile().

2 голосов
/ 15 февраля 2011

Zip-файлы не имеют указанной кодировки; инструмент архивирования должен угадать (или предположить) используемую кодировку. Сначала попробуйте CP1252, а затем оттуда.

...