Компьютеры хранят информацию в виде нулей и единиц. Каждому символу присваивается собственная последовательность из этих цифр с помощью специальных таблиц — кодировок. Самые распространенные — cp1251, utf-8.
Вы разместили сайт, а вместо статей на нем отображаются такие символы: это сайт Рѕ котиках
Это означает, что браузер не смог правильно распознать кодировку. Определить ее поможет декодер Лебедева.
Скопируйте часть текста и поместите в декодер:
Он расшифрует фразу и выведет название верной кодировки. Здесь это — utf-8.
Если вы видите нечитаемые символы вместо текста на сайте — измените заголовок страниц, кодировку в файлах или базе данных сайта.
Заголовки
Браузер понимает, в какой кодировке отображать текст, с помощью заголовков. Они задаются в файле .htaccess или скриптах сайта.
В первую очередь посмотрите, какие заголовки указаны в файлах:
- HTML-страница
Заголовок
- PHP-скрипт
charset');
- Python
header('Content-type: text/html; charset=charset')
- Perl
print "Content-Type: text/html; charset=charset\n\n";
Измените значение параметра «charset», указав кодировку из декодера.
Если в скриптах заголовок не указан, добавьте в файл .htaccess директиву: AddDefaultCharset charset
здесь charset — название кодировки из декодера. Например, для utf-8 правило будет выглядеть так: AddDefaultCharset utf-8
Проверьте, верно ли отображаются ваши статьи теперь. Если нет — измените кодировку файлов.
Кодировка файлов
Откройте индексный файл с помощью Файлового менеджера в Панели управления. Если вы видите нечитаемые символы — он изначально сохранен в неверной кодировке. Измените ее в нижней части окна редактора и нажмите «Сохранить». Перед внесением изменений создайте резервную копию. Также поменять кодировку можно в текстовом редакторе на компьютере.
Если текст в файлах отображается верно, с помощью Файлового менеджера выполните поиск фразы «ini_set» по содержимому. Измените значение этой функции, указав кодировку из декодера после «default_charset»: ini_set('default_charset','charset');
Если поиск не дал результатов, добавьте в файл .htaccess правило: php_value default_charset "charset"
здесь charset — название кодировки из декодера.
Перейдите на сайт и посмотрите, как теперь отображается текст. Если проблема сохраняется, проверьте базу данных.
Кодировка базы данных
Перейдите в раздел «Базы данных» → «PhpMyAdmin» Панели управления, кликните на имя базы данных и посмотрите, какие символы содержатся в таблицах. Если вы видите нечитаемый текст, при импорте была выбрана неверная кодировка.
Подключитесь к серверу по SSH и создайте новый дамп, указав кодировку из декодера в параметре default-character-set: [username@server ~]$ mysqldump -u username -p dbname --default-character-set=charset > dbname.sql
Откройте дамп в текстовом редакторе, найдите команду SET NAMES и укажите кодировку из декодера: SET NAMES charset
После этого загрузите новый дамп в базу данных.
Если текст в базе отображается правильно, нужно найти скрипт для подключения к базе данных. Выполните в Файловом менеджере поиск по фразе: «mysql_conn». После mysql_select_db добавьте функцию: mysql_set_charset("charset")
здесь charset — кодировка из декодера.
После внесенных изменений не забудьте очистить кеш браузера и проверить работу сайта. Теперь текст отображается верно.
Если решить проблему не удалось, обратитесь в нашу службу поддержки — мы поможем разобраться.