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

Исправлять такую проблему нужно аккуратно, потому что повторная перекодировка может окончательно испортить текст.

Какая боль у клиента

На сайте ломается кириллица: вместо нормального текста появляются непонятные символы. Это портит страницы, товары, заявки, письма и админку.

Частые причины

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

План работы

  1. Проверяю кодировку страницы, подключения и таблиц.
  2. Смотрю, испорчены ли данные физически или только неверно выводятся.
  3. Делаю резервную копию перед любыми изменениями.
  4. Подбираю безопасный способ исправления.
  5. Проверяю страницы, админку, формы и письма.

Что не стоит делать

  • перекодировать базу несколько раз подряд
  • импортировать дамп без бэкапа
  • менять charset только в HTML, если проблема в базе
  • смешивать utf8 и utf8mb4 без понимания
  • исправлять только одну таблицу, если проблема системная

Что входит в результат

  • нормальный вывод кириллицы
  • проверка charset и collation
  • аккуратная работа с дампом
  • исправление подключения к базе
  • рекомендации по будущим импортам

Что прислать для оценки

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

Сроки

Проблема вывода30-90 минут
Проблема после импорта1-3 часа
Поврежденные данныепосле анализа дампа

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

Всегда ли можно восстановить текст?

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

Нужен ли дамп базы?

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

Почему utf8mb4 лучше?

Он корректнее работает с полным набором Unicode-символов, включая эмодзи и специальные знаки.

Итог

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

Нужна похожая задача? Напишите в Telegram: @rabotator_support. Коротко опишите проблему, пришлите ссылку или лог, и я предложу понятный план решения.