Кракозябры на сайте — это ситуация, когда вместо нормального русского текста появляются странные символы. Часто это происходит после переноса сайта, обновления PHP, импорта базы или правки старых файлов.

Коротко: исправлять нужно аккуратно: важно понять, где сломалась кодировка, чтобы не испортить текст второй раз.

Когда это проявляется

  • вместо русских букв появились непонятные символы
  • админка показывает текст нормально, а сайт нет
  • после переноса сломались заголовки и описания
  • часть страниц нормальная, часть с ошибками
  • импорт из CSV или базы испортил текст

Что важно проверить

Кодировка может отличаться в файлах, базе, соединении MySQL, HTML meta, HTTP-заголовках и импорте. Если просто заменить текст вручную, причина останется.

  • кодировка базы и таблиц
  • кодировка соединения MySQL
  • кодировка PHP-файлов и шаблонов
  • HTTP-заголовки и meta charset
  • источник импорта или миграции

Как я решаю задачу

Я сначала определяю, где именно произошла порча, и только потом исправляю данные.

  • сравниваю вывод на сайте, в базе и файлах
  • проверяю charset и соединение с базой
  • нахожу место неправильного преобразования
  • исправляю кодировку или данные безопасным способом
  • проверяю страницы, админку и формы

Что подготовить

  • адрес страницы с кракозябрами
  • доступ к файлам и базе
  • когда появилась проблема
  • делался ли перенос, импорт или обновление

Сроки и результат

Если причина в заголовке или соединении с базой, исправление быстрое. Если данные уже испорчены в базе, нужна осторожная работа с резервной копией.

Вопрос-ответ

Можно исправить без потери текста?

Часто да, особенно если данные в базе сохранились корректно.

Нужен бэкап?

Да, перед правкой кодировок и базы лучше обязательно сделать копию.

Почему часть сайта нормальная?

Разные блоки могут брать текст из разных источников: файлов, базы, кеша или импорта.

Нужна похожая задача?

Напишите в Telegram @rabotator_support: пришлите адрес сайта, описание проблемы и доступы, которые есть. Я посмотрю ситуацию, объясню план и скажу срок до старта.