Вся суть в том, что и файловый сервер (хостинг) и СУБД MySQL отдают данные к конкретной кодировке,
которая прописана у них в файлах конфигурации по умолчанию. Если сайт в другой кодировке, то будет
некорректное отображение как самих файлов php, так и данных, возвращаемых СУБД MySQL.
Кодировки меняются в корфигурационных файлах файлового сервера (например Apache или Nginx) httpd.conf
так же можно изменять настройки конфигурации сервера под определенную директорию (сайт) для этого
существует файл .htaccess .
У СУБД MySQL конфигурационный файл называется либо my.ini, либо my.cnf в зависимости от ОС на которой
установлена СУБД MySQL.
В этом файле конфигурации устанавливается кодировка в которой возвращаются данные из базы. Вне зависимости
от того в какой кодировке сама читаемая база
Кароче суть в том, что база отдает скриптам на сервере данные в конкретной кодировке и патому уже сервер всю эту
информацию отдает в своей кодировке.
show variables — посмотреть данные
после доключения к базе вставьте строку
mysql_query('SET NAMES cp1251');
Может ещё кому понадобится:
В my.ini в секции [mysqld] пишется строка:
init-connect='SET NAMES cp1251'
и кодировка будет устанавливаться при каждом соединении автоматом.
[mysqld]
init_connect='SET NAMES cp1251'
mysql_set_charset();
На этом вроде бы всё, если ещё, что то вспомню, то обязательно допишу в этот пост. Надеюсь теперь проблема с кодировками при работе с системой управления базами данных MySQL у вас не вызовет затруднений.