Немного предыстории.
Битрикс всегда требовал настройку на сервере в виде:php_value mbstring.func_overload = 2
php_value mbstring.internal_encoding = UTF-8
Эта устаревшая настройка, которая до сих пор тянулась из версии к версии. Из-за нее требовалось использовать специально настроенный сервер под Битрикс. Если вы используете виртуальную машину Bitrix VM, тут никаких проблем не было. Но если вы использовали виртуальный хостинг, то большинство таких хостингов не давали менять эту настройку и делали специальные тарифы для сайтов на 1С-Битрикс (которые, замечу, были дороже).
Сейчас же, если вы хотите запустить небольшой сайт, не требующий больших ресурсов, вы можете использовать любой виртуальный хостинг.
Но что же делать тем, кто увидел эту ошибку? А особенно тем, у кого после обновления поломалась часть функционала сайта или облачной CRM?
Как починить
Все просто. Если вы используете виртуальную машину Битрикса, вам нужно ее обновить до версии 7.4.4 и выше. В этих версиях удалена устаревшая опция mbstring.func_overload. После обновления все отлично заработает.
Если у вас несколько сайтов и один из них на непродленной лицензии Битрикса, который нельзя обновить, то только для него отдельно нужно будет прописать старую настройку mbstring.func_overload = 2.В этой статье написано как это сделать.
Если вы используете простой виртуальный хостинг, то обратитесь к техподдержке хостинга с просьбой убрать mbstring.func_overload.
Решение для Timeweb
Многие пишут о проблеме с обновлением на хостинге TimeWeb. На нем можно отключать и включать параметр mbstring.func_overload прямо в .htaccess. И при отключении ее там, получают ошибку, подробнее можете ознакомиться ниже в комментариях.Несколько пользователей подтвердили решение проблемы:
Заходим в админке в Настройки -> Проактивная защита -> Проактивный фильтр и на вкладке исключения добавляем в исключения /bitrix/*
Как вариант, можете просто отключить проактивную защиту, обновиться и потом ее включить.