Кракозябры на сайте — это ситуация, когда вместо нормального русского текста появляются странные символы. Часто это происходит после переноса сайта, обновления PHP, импорта базы или правки старых файлов.
Коротко: исправлять нужно аккуратно: важно понять, где сломалась кодировка, чтобы не испортить текст второй раз.Когда это проявляется
- вместо русских букв появились непонятные символы
- админка показывает текст нормально, а сайт нет
- после переноса сломались заголовки и описания
- часть страниц нормальная, часть с ошибками
- импорт из CSV или базы испортил текст
Что важно проверить
Кодировка может отличаться в файлах, базе, соединении MySQL, HTML meta, HTTP-заголовках и импорте. Если просто заменить текст вручную, причина останется.
- кодировка базы и таблиц
- кодировка соединения MySQL
- кодировка PHP-файлов и шаблонов
- HTTP-заголовки и meta charset
- источник импорта или миграции
Как я решаю задачу
Я сначала определяю, где именно произошла порча, и только потом исправляю данные.
- сравниваю вывод на сайте, в базе и файлах
- проверяю charset и соединение с базой
- нахожу место неправильного преобразования
- исправляю кодировку или данные безопасным способом
- проверяю страницы, админку и формы
Что подготовить
- адрес страницы с кракозябрами
- доступ к файлам и базе
- когда появилась проблема
- делался ли перенос, импорт или обновление
Сроки и результат
Если причина в заголовке или соединении с базой, исправление быстрое. Если данные уже испорчены в базе, нужна осторожная работа с резервной копией.
Вопрос-ответ
Можно исправить без потери текста?
Часто да, особенно если данные в базе сохранились корректно.
Нужен бэкап?
Да, перед правкой кодировок и базы лучше обязательно сделать копию.
Почему часть сайта нормальная?
Разные блоки могут брать текст из разных источников: файлов, базы, кеша или импорта.
Нужна похожая задача?
Напишите в Telegram @rabotator_support: пришлите адрес сайта, описание проблемы и доступы, которые есть. Я посмотрю ситуацию, объясню план и скажу срок до старта.