Какую кодировку выбрать для базы чтобы можно было сохранять строки на любом языке и не парить себе мозг?

Сделал миграцию
$tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';

Добавил модель, передаю post данные с кириллицей, save() отрабатывает, но латиница в базу попадает, а от кириллицы пустое место... боюсь предположить, что будет если кто-то напишет на арабском, китайском или хинди. Что делать?
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
SerafimArts
@SerafimArts
Кратко о себе
Стоит везде выставить utf8mb4_unicode_ci (работает точнее при сортироваках и проч.) или utf8mb4_general_ci (чуть быстрее работает, крайне незначительно, так что имеет смысл именно первый вариант).

P.S. Указанные выше utf8_general_ci/utf8_unicode_ci поддерживают лишь половину диапазона utf8, отсюда сохранение, например эмодзи, будет физически невозможным.

P.P.S. Суффикс "ci" означает Case Insensitive (нечувствителность к регистру при поиске и сравнении).
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@sidni
Нормальная у Вас кодировка, utf8_unicode_ci так же подходит для кириллицы. Может что то происходит во время декодирования json или пользуетесь строковыми функциями без приставки mb_
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Fmedia Санкт-Петербург
от 40 000 до 100 000 руб.
Max.Credit Санкт-Петербург
от 150 000 до 150 000 руб.
Badoo Development Москва
от 140 000 до 180 000 руб.