Какую кодировку выбрать для базы чтобы можно было сохранять строки на любом языке и не парить себе мозг?
Стоит везде выставить utf8mb4_unicode_ci (работает точнее при сортироваках и проч.) или utf8mb4_general_ci (чуть быстрее работает, крайне незначительно, так что имеет смысл именно первый вариант).
P.S. Указанные выше utf8_general_ci/utf8_unicode_ci поддерживают лишь половину диапазона utf8, отсюда сохранение, например эмодзи, будет физически невозможным.
P.P.S. Суффикс "ci" означает Case Insensitive (нечувствителность к регистру при поиске и сравнении).
Нормальная у Вас кодировка, utf8_unicode_ci так же подходит для кириллицы. Может что то происходит во время декодирования json или пользуетесь строковыми функциями без приставки mb_