Мощный и надежный хостинг
8-800-350-77-51

Исправление ошибок кодировки базы utf8_general_ci

01.01.2010

При тестировании сайта в 1С Битрикс пользователь может получить следующее сообщение:

Ошибка!

Сравнение для базы (utf8_general_ci) отличается от сравнения для соединения (utf8_unicode_ci).

Этот баг не влияет на работоспособность системы, однако для сохранения стабильности конфигурации от него лучше избавиться. Ошибка устраняется в автоматическом режиме. Для этого необходимо кликнуть на надписи Исправить и следовать инструкциям, появившимся на экране. 

После завершения процесса можно запустить тест повторно. Он должен пройти без новых ошибок. 

Важно:
Ошибки, связанные с неправильной кодировкой базы,  следует устранять после устранения описанной выше. Нарушение этого требования может привести к неработоспособности сайта. Строго следуйте последовательности действий, изложенных в списке. 
 

В некоторых случаях автоматическое исправление не функционирует. Об этом говорит такое сообщение:

Ошибка!

Кодировки таблиц имеют ошибки, общее число ошибок N, их них автоматически могут быть исправлены: 0.

Избавиться от этого бага необходимо вручную. Алгоритм действий следующий:

  1. Сделать резервное копирование во избежание потери данных вследствие неправильных действий. Для этого можно воспользоваться встроенными средствами CMS.
  2. Кликнуть на изображение ? рядом с описанием ошибки. 
  3. Перейти по ссылке в журнал проверки, где указаны подробные результаты проверки. 
  4. После выполнения указанных действий на экране отобразиться перечень ошибок с привязкой к таблице и полям. Необходимо выделить текст и нажать CMD+C.
  5. Вставить информацию из буфера обмена (CMD+V) в любой простой текстовых редактор. Например, Sublime Text или Блокнот. 
  6. Удалить лишние строки таким образом, чтобы остались только упоминания об ошибках таблиц. 
  7. Отредактировать получившиеся строки так, чтобы в редакторе остались только названия таблиц БД.

Далее следует добавить такую строку 

ALTER TABLE хххх CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci

где вместо хххх указаны полученные описанным выше способом названия. 

После этого нужно снова выделить текст и скопировать его в буфер. Затем зайти в административную часть CMS и вставить его в разделе SQL-запросов. Далее останется только выполнить команды, нажав соответствующую кнопку.  

Таким образом можно пакетом обработать изменение кодировки, чтобы избавиться от существующей ошибки вручную. 

Блок чата