Иероглифы вместо русского текста на сайте. Проблемы с кодировкой текста на сайте

У некоторых людей случаются проблемы с кодировкой на сайте/сервере из-за чего вместо русского текста появляются иероглифы вида:

Почему это происходит?

Одной из причин происхождения является тот факт, что у вас установлены разные кодировки вывода данных (текста) в PHP / MySQL / Html / Файлах. По правде... Это единственная причина по которой у вас иероглифы.. Осталось разобраться только откуда именно поступает неправильная кодировка. Например, может быть что в PHP, Html, Файлах кодировка UTF-8, а в MySQL win-1251 и из-за этого у вас проблемы.

Как решить проблему с иероглифами возникающими вместо русского текста?

Что ж для того что бы решить проблему не мороча себе голову выставьте везде кодировку UTF-8. 

1. Файл сайта должен быть сохранён в UTF-8.

2. В HTML между тэгами <head> и </head> добавьте строку:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

3. В PHP файле перед вывод каких-либо HTML частей, вставьте строку:

header("Content-Type: text/html; charset=utf-8");

Можно сию строку поставить и в начале файла.

4. И конечно MySQL... Тут дело затяжней.

Нередко бывают случаи когда все данные отображаются правильно, по русски короме тех которые хранятся и выводятся на страницу из базы данных MySQL, в этом случае это естественно проблемы только БД и предыдущие 3 шага выполнять необязательно.

Т.к я не знаю вашей ситуации то предположу:

4.1. У вас в MySQL все данные записываются в неверной кодировке.

Для того что бы убедиться в этом или обратном воспользуйтесь PhpMyAdmin и собственноручно проверьте базу. Если в ней записи в отличном "русском" состоянии, значит с кодировкой данных в базе всё нормально и остаётся только неправильная кодировка вывода данных из MySQL. Если же действительно в базе билиберда и полно иероглифов, то сделайте следующее:

В PhpMyAdmin выберите используемую БД, затем справа выберите вкладку "Операции", и в самом низу "Сравнение" Поставьте utf8_general_ci.

4.2. У вас неправильная кодировка вывода данных из MySQL.

В том случае если у вас в базе всё по русски а вот выводит данные она иероглифани, значит проблемы именно с выводом. Для решения этой проблемы, убедитесь что перед выводом чего-либо из базы в PHP файле присутствуют такие строки:

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8' );
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"' );



You have no rights to post comments

Карта сайта