Довольно часто встречается проблема с корректным отображением сайта, если он использует кодировку cp1251. Это связанно с тем, что сервера настроены на работу с utf8 по умолчанию т.к. данная кодировка является универсальной.
И для того что бы сайты нормально работали в кодировке cp1251 иногда требуются дополнительные манипуляции. Сейчас мы их рассмотрим подробнее.
1. Заходим в phpMyAdmin и просматриваем кодировку таблиц, должна быть cp1251

2. Идем в саму таблицу и смотрим в каком виде текст , если все в порядке, то пропускаем этот пункт, если вопросики, то делаем так:
- Открываем дамп с базой данных (сам файл) и сохраняем его в кодировке cp1251
- Идем в phpMyAdmin и при импорте выбираем кодировку cp1251
- Все, теперь знаков вопроса в таблицах не должно быть.
3. Забыл уточнить, при создании базы в ISPmanager рекомендуется так же выставлять кодировку cp1251

4. Теперь открываем в корне папки с сайтом файл .htaccess (если такого нет, то создаем) и вписываем вначале файла строчки DefaultLanguage ru AddDefaultCharset windows-1251 php_value default_charset "cp1251" Сохраняем файл.
5. Открываем исходный код страницы вашего сайта (через правую копку) и смотрим строчку <meta http-equiv="Content-Type" значение должно быть windows-1251, т.е. примерно так <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> если у вас другое, то в шаблоне сайта или в его настройках (у всех по разному) меняем на windows-1251
6. Выставление кодировки запроса к базе (если не помогло то, что описано ранее). В каждом случае это делается индивидуально, но общие признаки есть.
К примеру находим строки в файлах подключения к базе $db = new db(тут_данные_или_переменные); ниже добавляемmysql_query("set names cp1251"); или $db->query("set names cp1251"); или $db->query("set character_set_client cp1251"); $db->query("set character_set_results cp1251");
Поддержка Работа с сайтами
|