После перехода с устаревшего серверного программного обеспечения (например, версии PHP) на новое серверное программное обеспечение Вы иногда сталкиваетесь с проблемами кодирования на сайте.
Например!
Код 1251 не имеет ничего общего с PHP до версии 5.6. В связи с этим необходимо изменить кодировку на UTF-8, которая является стандартом для последней версии PHP.
Если ваш сайт работает с кодировкой 1251 до перехода на наш хост, вы увидите примечание: Сайт работает с однобайтовой кодировкой при проверке системы. Чтобы решить эту проблему, вам нужно преобразовать сайт в UTF-8 или изменить обработчик PHP на кодировку 1251.
Выполните следующий алгоритм действий в зависимости от ситуации:
- Если на странице /bitrix/admin/site_checker.php отображается ошибка, исправьте настройку базы данных в панели 1С Битрикс: Ошибка! Базовый код (utf8) отличается от кода подключения (cp1251). [Исправленный]
- Если операция не удалась, попробуйте снова выполнить исправления.
Редко вам может потребоваться исправить это вручную через phpMyAdmin.
В разделе База данных панели хостинга перейдите в базу данных вашего сайта. После перенаправления на phpMyAdmin перейдите в раздел Действия и выберите utf-8_general_ci в блоке Сравнить. Щелкните Вперед.
Отредактируйте php.ini для выбранной версии в режиме PHP вашего сайта:
Обратите внимание, что в настройках php.ini для выбранной версии PHP вашего сайта установлены следующие значения:
Для варианта конвертации в utf-8:
mbstring.func_overload = 2
mbstring.internal_encoding = utf-8
default_charset = "utf-8"
Для варианта без конвертации (остается кодировка 1251):
mbstring.func_overload = 0
mbstring.internal_encoding = cp1251
default_charset = "cp1251"
Для однобайтовой кодировки (1251) также потребутеся отключить кодировку UTF-8 в панели хостинга в разделе "WWW-домены":
Далее необходимо в файлах системы 1С-Битрикс установить необходимую кодировку ленты:
Для вариантов преобразования utf-8:
В /bitrix/php_interface/dbconn.php должно быть значение: define('BX_UTF', true);
В /bitrix/.settings.php должно быть значение: 'utf_mode' => array ('value' => true, 'readonly' => true,),
Для варианта без преобразования (остается кодировка 1251):
В /bitrix/php_interface/dbconn.php полностью удалить значение: define('BX_UTF', true);
В /bitrix/.settings.php должно быть значение: 'utf_mode' => array ('value' => false, 'readonly' => true,)