При тестировании сайта в 1С Битрикс пользователь может получить следующее сообщение:
Ошибка!
Сравнение для базы (utf8_general_ci) отличается от сравнения для соединения (utf8_unicode_ci).
Этот баг не влияет на работоспособность системы, однако для сохранения стабильности конфигурации от него лучше избавиться. Ошибка устраняется в автоматическом режиме. Для этого необходимо кликнуть на надписи Исправить и следовать инструкциям, появившимся на экране.
После завершения процесса можно запустить тест повторно. Он должен пройти без новых ошибок.
Важно:
Ошибки, связанные с неправильной кодировкой базы, следует устранять после устранения описанной выше. Нарушение этого требования может привести к неработоспособности сайта. Строго следуйте последовательности действий, изложенных в списке.
В некоторых случаях автоматическое исправление не функционирует. Об этом говорит такое сообщение:
Ошибка!
Кодировки таблиц имеют ошибки, общее число ошибок N, их них автоматически могут быть исправлены: 0.
Избавиться от этого бага необходимо вручную. Алгоритм действий следующий:
- Сделать резервное копирование во избежание потери данных вследствие неправильных действий. Для этого можно воспользоваться встроенными средствами CMS.
- Кликнуть на изображение ? рядом с описанием ошибки.
- Перейти по ссылке в журнал проверки, где указаны подробные результаты проверки.
- После выполнения указанных действий на экране отобразиться перечень ошибок с привязкой к таблице и полям. Необходимо выделить текст и нажать CMD+C.
- Вставить информацию из буфера обмена (CMD+V) в любой простой текстовых редактор. Например, Sublime Text или Блокнот.
- Удалить лишние строки таким образом, чтобы остались только упоминания об ошибках таблиц.
- Отредактировать получившиеся строки так, чтобы в редакторе остались только названия таблиц БД.
Далее следует добавить такую строку
ALTER TABLE хххх CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci
где вместо хххх указаны полученные описанным выше способом названия.
После этого нужно снова выделить текст и скопировать его в буфер. Затем зайти в административную часть CMS и вставить его в разделе SQL-запросов. Далее останется только выполнить команды, нажав соответствующую кнопку.
Таким образом можно пакетом обработать изменение кодировки, чтобы избавиться от существующей ошибки вручную.