Параметры настройки UTF в 1С Битрикс Управление Сайтом

Параметры настройки UTF, конкретно mbstring и константа BX_UTF, в CMS «1С Битрикс Управление Сайтом».

Модуль mbstring необходим для работы с разными языками. Параметры настройки этого модуля должны иметь строго определенные значения в зависимости от того, работает сайт в кодировке utf-8 или в национальной кодировке (например, cp1251).

Для сайтов в кодировке UTF-8 строго необходимо значение параметров:

mbstring.func_overload=2
mbstring.internal_encoding=utf-8

Первый параметр включает подмену всех базовых функций php работы со строками (вычисление длины, поиск, замена и т.д.) функциями mbstring. Второй определяет кодировку текста.

Если сайт не использует кодировку UTF-8, требуется, чтобы параметр имел значение:

mbstring.func_overload=0

Если нет возможности отключить подмену функций, необходимо установить кодировку текста в однобайтовую:

mbstring.func_overload=2
mbstring.internal_encoding=latin1

Если параметры не соответствуют требуемым, то в разных местах будут появляться совершенно непредсказуемые ошибки: частично обрезанный текст, неработающий импорт xml, система обновлений и т.д.

Обратите внимание, что параметр mbstring.func_overload определяется в глобальном файле настроек php.ini (или для виртуального сервера в httpd.conf), а кодировку можно переопределить в .htaccess.

В качестве индикатора кодировки для всех модулей 1С-Битрикс является константа BX_UTF. Для сайта в UTF-8 необходимо установить в /bitrix/php_interface/dbconn.php код:

define('BX_UTF', true);

Подробности в журнале проверки системы.