TGViewer
EvApps EvApps @evapps_team · 202 subscribers
Post #1546 33
🧩 Что тут не так?
База MySQL, таблица с юзерами, кодировка utf8
Юзер обновляет имя:
UPDATE users SET name = 'Аня 🌸' WHERE id = 42;

И вместо успеха прилетает:
Incorrect string value: '\xF0\x9F\x8C\xB8' for column 'name'

Обычные буквы и цифры сохранялись годами, а тут запрос падает на ровном месте
Вопрос: почему невинный цветочек ломает вставку?

Потому что кодировка utf8 в MySQL - это не полноценный UTF-8
Историческая засада: их utf8 умеет хранить максимум 3 байта на символ
А эмодзи (и часть редких иероглифов, старые символы) - это 4 байта
Символ не влезает в отведённое место, база отказывается его писать и кидает ошибку
То есть колонка принимает буквы, кириллицу, латиницу - всё, что укладывается в 3 байта
А как только прилетает 4-байтовый символ, всё ломается
И ловится это не сразу: на тесте с обычными именами чисто, а в проде первый же юзер с эмодзи в нике роняет запрос

🛠 Как чинить
Нужна кодировка utf8mb4 - вот она и есть настоящий полный UTF-8 с поддержкой 4 байт:
ALTER TABLE users
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

И проверь, что на utf8mb4 переведены все три уровня: сама база, таблицы и подключение приложения к базе
Если приложение коннектится в старой utf8, эмодзи всё равно потеряются по дороге, даже когда таблица уже правильная

В MySQL utf8 - это мина
Всегда бери utf8mb4 с самого начала, тогда эмодзи, редкие языки и всякая экзотика не будут ронять тебе вставки
В Postgres, к слову, такой засады нет - там UTF8 сразу полный

Ловили это? Эмодзи в имени, в сообщении, в названии - что вам роняло базу? 🤔

#mysql #database #backend #dev #programming #bugs
More from @evapps_team
  1. Sep 23, 2026🔁 Ретраи, которые добивают лежачий сервис Сервис-сосед начал тупить, отвечает через раз Л…
  2. Sep 23, 2026Хотите не теряться среди сотен откликов? На hh сейчас бывает ощущение, что до HR просто не…
  3. Sep 23, 2026photo post
  4. Sep 21, 2026🧩 Что тут не так? Код-загадка Формат новый - показываю код, ты угадываешь подвох, ниже ра…
  5. Sep 18, 2026🎭 Мифы про производительность, в которые верят даже опытные Миф 1: "Меньше строк кода - б…
  6. Sep 16, 2026🚨 Как перевод денег уронил нам прод ⏰ 19:10 Задеплоили долгожданное - переводы между коше…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →