Page tree

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

Ниже рассмотрим возможные способы устранения этих проблем.

Кодировка в запросе к базе

Часто проблема связана с тем, что для файлов сайта используется кодировка cp1251, а для содержимого базы данных - UTF-8. В этом случае на сайте часть текста отображается корректно, а часть - в виде вопросительных знаков.

Чтобы ее устранить, необходимо добавить в файл скрипта, который содержит данные для подключения к базе данных, следующие строки:

mysql_query("SET NAMES 'cp1251' COLLATE 'cp1251_general_ci'");
mysql_query("SET CHARACTER SET 'cp1251'");

Если используется mysqli:

mysqli_query($link, "SET NAMES 'cp1251' COLLATE 'cp1251_general_ci'");
mysqli_query($link, "SET CHARACTER SET 'cp1251'");

Кодировка в .htaccess

Еще один распространенный случай — когда соединение с базой использует по умолчанию кодировку UTF-8, а файлы сайта открываются в браузере в другой кодировке. (Могут выводиться символы СЂР°РЅСЏР вместо кириллицы.)

Для устранения проблемы рекомендуем указать кодировку по умолчанию в файле .htaccess. Он располагается в папке public_html в директории вашего сайта.

Добавьте в файл строку:

AddDefaultCharset UTF-8 

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

Кодировка базы данных

В отдельных случаях может потребоваться изменить кодировку в базе данных MySQL.

Например, чтобы установить по умолчанию кодировку UTF-8, выполните следующее:

1. Перейдите в phpMyAdmin.

2. Выберите нужную базу в списке баз слева.

3. Перейдите в раздел Операции / Operations.

4. В блоке Сравнение / Collation выберите utf8_general_ci.

5. Отметьте галочками оба пункта.

6. Нажмите кнопку Вперед / Go.



  • No labels