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

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

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

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

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

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

Похожие вопросы