Для корректной работы Битрикс в файле php.ini должны быть указаны соответствующие значения:
mbstring.func_overload = 2 mbstring.internal_encoding = UTF-8
Но теперь все остальные сайты на хостинге так же получают эти настройки, что не всегда есть хорошо.
В версиях PHP до 5.3 можно было управлять этими переменными с помощью файлов .htaccess, например так:
<IfModule mod_php5.c> php_value mbstring.func_overload 2 php_value mbstring.internal_encoding UTF-8 </IfModule>
Но начиная с версии PHP 5.3 изменять в .htaccess mпеременные mbstring.func_overload и еще кучу других нельзя. Ни с помощью php_admin_value, ни с помощью php_value. Как вариант, можно отредактировать файл настроек виртуального хоста Apache:
<Directory /home/user/www> php_value mbstring.func_overload 2 php_value mbstring.internal_encoding UTF-8 </Directory>
Но далеко не всегда это возможно, например если вы хоститесь на shared-хостинге и доступ к настройкам отсутствует. Но теперь можно задавать параметры для каждого конкретного хоста можно в соответствующих разделах php.ini, которые в PHP начиная с версии 5.3.
Правим php.ini:
[HOST=www.yousite.ru] mbstring.func_overload=2 mbstring.internal_encoding UTF-8