Решение проблем с кодировками (дополняется и обновляется)

Пользователи часто сталкиваются с проблемами неверной кодировки после закачки сайтов к нам на сервер.

Сперва необходимо удостоверится, в кодировке чего именно проблема, в кодировке файлов или в кодировке базы. В принципе определить это не сложно. Весь сайт в непонятных кракозябрах, абсолютно весь, то скорее всего проблема в кодировке файлов. Это проблему решить наиболее легко. По умолчания на сервере установлена кодировка utf-8, а в Вашем случае кодировка страниц - windows-1251. В папке с сайтом создаем файл .htaccess ( или дописываем в существующий) с текстом:

AddDefaultCharset windows-1251 

Сохарняете, и все начинает работать верно.

Это было просто, более сложная проблема, когда с кодировкой файлов все нормально, а проблема в кодировке базы. Если вы видите, что частично текст остается читабельным, но вся динамическая информация типа новостей, различных данных и т.д. отображается в виде знаков вопроса, то проблема в базе. Как же решить данную проблему.. Сперва необходимо удостоверится, что в самой базе данные находятся в нормальном виде. Для этого заходим в cpanel и запускаем PHPMYADMIN. Заходим в необходимую базу, выбираем какую-нибудь таблицу, где есть русские буквы, жмем просмотр. Если мы видим, что текст отображается нормально, значит проблема в кодировке соединения БД с PHP скриптами, если же мы и здесь видим вопросы, тогда возможны варианты. 

1. Дамп базы изначально был в вопросах. 

2. База была залита неверно. 

Первый пункт проверить довольно легко. Открываем дамп в любом текстовом редакторе и смотрим русский текст в нем. Если он отображается вопросами, значит дамп сделан плохо, и нужно его сделать заново, так как те данные уже не восстановить. Если же в дампе нормальные данные - то скорее всего произошла ошибка при самой заливке. Чтобы избежать таких проблем, рекомендуем залить дамп при помощи программы от supex.net DUMPER Lite. Удобная программа, которая сама подбирает кодировки. Инстуркции по работе с ней Вы найдете на их сайте. 

Итак, будем считать, что в PHPMYADMIN база отбражается корректно, а на сайте вопросами (так чаще всего и бывает). Для решения данной проблемы требуется сделать следующее. 

Для самописного скрипта - наиболее легко, так как вы его хозяин, но и для любых других скриптов и движков правило не меняется. Просто там тяжелее найти нужные строки. Итак, в скрипте нужно найти следующие строки: 

mysql_connect(что-то);

mysql_select_db(что-то);

После данных строк сразу пишите.

mysql_query("SET NAMES cp1251"); 

Сохраняете, и все начинает работать. В течение некоторого времени мы выолжим рекомендации для различных движков, какие именно файлы и где править. Можете писать запросы в ТП для того или иного движка.