30 сентября 2022, 08:35

Цитата дня:

Я всегда буду искать ленивого человека для работы, ведь он найдет много легких путей для решения поставленной задачи. Билл Гейтс


Проблемы с кодировкой после смены операционной системы на Debian

Автор Призрак, 17 апреля 2019, 08:49

« предыдущая тема - следующая тема »

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

Вниз

Призрак

Был сервер, на FreeBSD, операционная система вышла из строя. Переустановил систему, перенёс сайт на Debian, подальше от этой FreeBSD, где по непонятной причине нет поддержки кириллицы, начались небольшие проблемы. Дело в том, что сайт основан на CMS Moodle. В папке moodledata есть лекции, которые загружали в формате htm и html в кодировке Windows-1251. Теперь там, естественно, кракозябры. На главной странице сайта я всё поменял, но в папке moodledata в подкаталогах сотни таких файлов. Хотелось бы их пакетом конвертировать. Но как это сделать, даже с помощью iconv, непонятно. Я замучился уже бегать по статьям, везде там в скриптах ошибки, безграмотные какие - то статьи. Также хотелось бы узнать, как поменять название кодировки пакетом в самих htm html файлов, внести изменения в тег. Буду очень рад любой помощи.   

Уваров А.С.

Не надо никак менять, нужно настроить веб-сервер на работу с нужной кодировкой.

Для apache это AddDefaultCharset windows-1251 в конфигурационный файл для всего сервера или в .htacсess для директории. И вообще, правильно бы было изучить и перенести настройки со старого веб-сервера на новый.

Призрак

Настроил, кэш почистил, заменил, то же самое. Ненавижу FreeBSD. Странно, до этого работал сервер нормально. Проблема в операционной системе, а не в web сервере.

Уваров А.С.

Причем здесь операционная система, страницы отдает веб-сервер в той кодировке, которая у него указана. В современных системах по умолчанию стоит UTF-8, отсюда и крякозябры. Если сайт работает на PHP - аналогично настраиваем PHP на работу с кодировкой 1251 и не забываем про СУБД, в идеале следует создать базу с теми же кодировками базы и таблиц, либо правильно настроить соединение с ней.

Скажем если у вас было сравнение БД latin1_swedish_ci, а таблицы в cp1251_general_ci, а потом вы загрузили все это в базу с сравнением cp1251_general_ci, то получите снова крякозябры.

Призрак

Как раз таки с базой данных у меня всё в полном порядке, она в UTF-8. Проблема с HTML файлами. Кодировка у сервера не указана сейчас никакая. В php.ini поправить?

Уваров А.С.

Как связан PHP и HTML файлы? И вообще откуда они там и для чего? Судя по документации Moodle - классическая CMS и должна хранить данные в СУБД.

Если речь идет о статике, то ей всегда можно указать нужное значение через  .htacсess в требуемой директории, при этом, чтобы работала директива AddDefaultCharset у вас должно быть  AllowOverride All в конфиге виртуального хоста.

Призрак

Уже сделал, спасибо, что посоветовали. У нас в HTML просто преподаватели публикуют лекции, вот и бывают проблемы. Спасибо вам за помощь.

Вверх