Подскажите, правильно ли я сдлелал.
Суть: База данных кочевала по серверам, по-видимому, имевших различие в настройках character и collation сервера mysql. В БД существуют, как utf8, так и utf8mb4, utf8_general_ci, utf8_unicode_ci, utf8mb4_general_ci, utf8mb4_unicode_ci.
Выполнение "Проверки системы" в административном разделе 1с-битрикса постоянно ругалось, на это всё. Автоматически исправишь, опять запускаешь проверку, еще что-то вылезает, лезешь делать смену потаблично. Опять проверяешь, опять что-то не нравится.
Решил поступить, возможно, слишком "влоб".
Учитывая, что хотелось бы всё иметь в utf8mb4 и ut8fmb4_unicode_ci (современно, с эмодзи и всё такое, битрикс кстати обновлен тоже до последней версии), открыл дамп бд в vim-е, заменил всё на вышеуказанные кодировку и сравненние.
Подсунул этот дамп битриксу. Запустил проверку, она ругнулась, что кодировка отличается utf8 <---> utf8mb4.
Посмотрел в настройки двух файлов php_interface/after_connect{_d7}.php:
Там:
$this->queryExecute("SET NAMES 'utf8'");
$this->queryExecute('SET collation_connection = "utf8_unicode_ci"');
Заменила на:
$this->queryExecute("SET NAMES 'utf8mb4'");
$this->queryExecute('SET collation_connection = "utf8mb4_unicode_ci"');
Теперь "Проверка системы" выполнятеся без ошибок.
Вопрос, чреват ли чем-то такой метод? Не костыли ли это?