0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 102 Просмотров
*

2d77

  • Новичок
  • 1
  • 0 / 0
Добрый день. 
Есть Joomla 3.7.5 на Apache 2.2, CentOS 6.9.
И есть компонент, в котором на сервер загружается и распаковывается zip-архив, при помощи класса JArchive:
Код
$zip = JArchive::getAdapter('zip');
$zip->extract($data['tmp_name'], $tmpFolder);
Так вот, архивы с русскоязычными символами он распаковывает некорректно, портит имена файлов.
Причина, конечно, не в классе, а в архиваторах, которыми пользователи пакуют файлы: архиваторы используют Юникод не везде, а только для символов, отсутствующих в текущей кодировке (для винды - cp1251). Проверено на 7-zip и встроенном виндовом архиваторе.
Заставить пользователей формировать архивы по-другому я не в силах, остаётся переключить кодировку для распаковщика.

И вопрос: как это сделать, где? В php или apache или системе? Перекопал конфиг, везде юникод либо ничего не указано. Делать cp1251 дефолтной кодировкой для всей системы - совсем не улыбается.

Спасибо заранее.

P.S. хотел прикрепить phpinfo(),  но нет прав прикреплять файлы, а вставлять прямо в текст сообщения - выходит нечитабельно и слишком дофига всего.
*

SmokerMan

  • Гуру
  • 5293
  • 719 / 26
Делать cp1251 дефолтной кодировкой для всей системы - совсем не улыбается.
ну можно попробовать что-то типа этого mb_detect_encoding
и потом перекодировать имя файла с помощью iconv
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

После сохранения модуля, слетает кодировка

Автор sheina

Ответов: 18
Просмотров: 775
Последний ответ 30.05.2017, 17:04:40
от nvyush
Кодировка Русификации шаблона

Автор Jimbo

Ответов: 32
Просмотров: 5162
Последний ответ 05.04.2016, 07:42:32
от AABAAAAA--MNT-FPIC