Проблема с кодировкой cp1251 DLE

Нередко на CMS DLE возникают проблемы с кодировкой. Обычно это бывает вызвано "другим" окружением после переноса сайта на новый хостинг. Все кириллические символы заменяются на знаки вопроса. И это происходит не только с cp-1251. С utf-8 дела обстоят не лучше.

После поиска на форумах информации о том, как решить данную проблему, было найдено решение...

Необходимо найти файл *.php, в котором есть функция подключения к базе данных MySQL. Добавить в начало этого файла такую строчку (для сайта с кодировкой cp-1251):

header("Content-Type: text/html; charset=cp-1251");

После этого, если указанная здесь кодировка, также присутствует в файле .htaccess, присутствует в шаблонах темы сайта и стоит по умолчанию в phpmyadmin для используемой таблицы, то проблема будет решена.

Для файла .htaccess:

AddDefaultCharset windows-1251

Или так:

AddDefaultCharset windows-1251
AddCharset windows-1251 *
<IfModule mod_charset.c>
    CharsetSourceEnc windows-1251
    CharsetDefault windows-1251
</IfModule>

Для шаблонов темы сайта:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

Для MySQL в phpmyadmin:

Если слетевшая кодировка была utf-8, то необходимо просто заменить windows-1251 на utf-8 в примерах выше.

Теги: