Intereting Posts
Отправить запрос POST с заголовком запроса x-amf (Flash) PHP не работает над файлом HTML Настройка php-меню для настроек языка Есть ли способ получить long / lat для заданного адреса в Картах Google только с PHP? Вложенные php включают поведение Отображение данных из двух таблиц с отношением «многие ко многим» с использованием PHP / CodeIgniter Как использовать аутентифицированного пользователя в функциональном тесте Symfony2? как заполнить при выпадающем основании значение из другого выпадающего списка в php и jquery? Преимущества PHP для цепочки? Игнорирование сообщения об ошибке сервера при использовании Yii CMemCache SPL против массива: когда следует использовать SPL и когда мы должны использовать Array в PHP? yaml / symfony2: переопределить конфигурации Postgresql regexp_matches внутри представления всегда возвращает null при запросе из PHP как поймать ошибку функции pg_connect ()? Как установить Imagick / imagemagick на windows 7

Какую кодировку использует ZipArchive для хранения имен файлов в созданном архиве?

Я использую класс 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() .