Страница 1 из 1

ZipArchive: проблемы с кодировкой

Добавлено: 14 мар 2018, 10:44
MARODER
Добрый день уважаемые обитатели форума.
Заранее хочу сказать спасибо разработчикам этого чуда OpenServer.
Для автоматизации некоторых нудных процессов на работе, оказалось идеальным решением.

И на чтобы улучшить работу еще больше, появилась необходимость работы с ZIP архивами через php. Поэтому я сразу обратился к ZipArchive. Но возникла проблема с кириллицей.
Сразу полез в инет, узнал про грабли с кодировкой CP866, проблемами CP1251 в Windows и т.д...и сколько сайтов не перелопатил, ничего не помогало...так продолжалось неделю...сколько сайтов не посещал и не пробовал чужие советы, не помогало.
Но вчера додумался запустить этот скрипт который глючит на OpenServer, на своем акке на хостинге...и о чудо...все заработало. Потом решил проверить этот же код, скачав Endels. И там тоже код заработал. Из CP866, из кракозябр, имена файлов на кириллице стали нормально отображаться.

Для наглядности приведу код и скриншоты результатов работы кода на OpenServer и хосте...
Вот код, который открывает архив и пытается вывести имя файла из архива в UTF-8:
<?
header("Content-type:text/html;charset=utf-8");
$zip = new ZipArchive;
$zip->open('111.zip');
$count = $zip->numFiles;
for ($i = 0; $i < $count; $i++) {
    $stat = $zip->statIndex($i);
    echo iconv('CP866', 'utf-8', $stat['name']);
    echo "\n\n\n" . '<br><br><br><br>' . "\n\n";
    print_r($stat);
}
$zip->close();
?>
Тут код выполнен через OpenServer:
OpenServer.jpg
А тут он выполнен через Endels/Хостинг:
Endels.jpg
Получается что проблема кроется в OpenServer. Может это настройка какая то, может в php.ini настроить че то нужно...ребята помогите...в чем может быть проблема?

P.S:
Если посмотрите на два скрина, то видно что на скрине с OpenServer есть строка:
[encryption_method] => 0
Может в этом путь к разгадке?
Я пытался и по этому поводу инфу найти, но ничего результативного найти не получается...ребята, HELP ME :))))