Иногда владельцы сайтов могут сталкиваться с проблемой неправильной кодировки в результате чего могут наблюдать похожие иероглифы.
Основной причиной этой проблемы является установка неверной кодировки в (тексте) PHP, MySQL, HTML или в файлах. Например у вас в тексте HTML или PHP кодировка UTF-8, а в MysQL используется cp1251_general_ci или наоборот в MySQL используется utf8_general_ci, а в PHP windows-1251, да еще и сервер по умолчанию использует кодировку UTF-8.
Для того чтобы все у вас заработало правильно, нужно привести все к единой кодировке.
Итак, чтобы решить проблему с неверной кодировкой на сайте нужно сделать следующее:
1. Если вы уверены что у вас используется кодировка windows-1251, то для начала укажите эту кодировку в панели управления вашим сайтом в разделе WWW домен, для нужного вам адреса.
Либо приведите все к универсальной кодировке UTF-8
В HTML между тэгами <head> и </head> добавьте строку:
<meta charset="utf-8">
2. В PHP в начале файла вставить строку:
header("Content-Type: text/html; charset=utf-8");
3. Бывают случаи, когда все данные, кроме русских символов отображаются правильно. Это однозначно связано с MySQL:
- данные в базу записываются в неверной кодировке (это можно проверить в phpMyAdmin, во первых открыть любую таблицу где хранятся данные с русскими символами, если они в неверной кодировке, попробуйте вставить новую строку в phpMyAdmin, чтобы убедиться в том, что либо данные поступают в базу в неверной кодировке, либо сама база имеет неверную кодировку).
- если при добавлении тестовой строки в таблице все отображается правильно, то проблема в неверной кодировке вывода данных из MySQL. В том случае если у вас в базе всё по русски, а вот выводит данные она иероглифами, значит проблемы именно с выводом, для решения этой проблемы можно принудительно указать нужную нам кодировку вывода.
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
- если при добавлении в таблицу в итоге вы увидите иероглифы, значит в настройках базы стоит неверная кодировка (В PhpMyAdmin выберите используемую БД, затем справа выберите вкладку "Операции", и в самом низу "Сравнение" поставьте utf8_general_ci или любую другую нужную вам кодировку)
P.S. Будьте внимательны и все у вас получиться.