Добрый день!
Нужна помощь, при редактировании параметров некоторых компонентов (например, bitrix:catalog) получаю ошибку "Не удалось обнаружить код вызова компонента".
Как мне удалось выяснить, это из-за неправильного номера строки в вызове диалога, в моем случае src_line=430, а по факту должна быть 12 строка.
Так же при проверке системы есть 1 ошибка (я думаю она связана с моей проблемой) :
При выполнении в командной строке PHP
#mb_internal_encoding('utf-8');
echo "strlen = ".strlen("абв")."\n" ;
echo "mb_strlen = ".mb_strlen ("абв")."\n";
Результат: strlen = 6 mb_strlen = 6, а если раскомментировать 1 строку, то везде 3
Долго гуглил и пробовал все варианты:
Добавил mb_internal_encoding('utf-8'); в /local/php_interface/init.php
В /bitrix/php_interface/dbconn.php есть строка define('BX_UTF', true);
LANG_CHARSET и SITE_CHARSET = UTF-8
В php.ini прописано:
mbstring.internal_encoding=UTF-8
mbstring.func_overload=2
default_charset=utf-8
Даже в .htaccess добавил на всякий случай:
<IfModule mod_php7.c>
php_flag session.use_trans_sid on
php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8
php_value default_charset UTF-8
</IfModule>
В phpinfo()
Пробовал так же удалять mbstring.internal_encoding и оставлять только default_charset UTF-8 как советуют тут , но результат не изменился.
Хостинг: reg.ru
Версия PHP: пробовал 7.0-bx\7.1-bx\7.2-bx
Нужна помощь, при редактировании параметров некоторых компонентов (например, bitrix:catalog) получаю ошибку "Не удалось обнаружить код вызова компонента".
Как мне удалось выяснить, это из-за неправильного номера строки в вызове диалога, в моем случае src_line=430, а по факту должна быть 12 строка.
Так же при проверке системы есть 1 ошибка (я думаю она связана с моей проблемой) :
| Параметры настройки UTF (mbstring и константа BX_UTF) | Ошибка! Строковые функции работают некорректно. Такая ситуация может возникать из-за ошибки в PHP 5.6 (), в этом случае надо установить более раннюю или более позднюю версию PHP. |
#mb_internal_encoding('utf-8');
echo "strlen = ".strlen("абв")."\n" ;
echo "mb_strlen = ".mb_strlen ("абв")."\n";
Результат: strlen = 6 mb_strlen = 6, а если раскомментировать 1 строку, то везде 3
Долго гуглил и пробовал все варианты:
Добавил mb_internal_encoding('utf-8'); в /local/php_interface/init.php
В /bitrix/php_interface/dbconn.php есть строка define('BX_UTF', true);
LANG_CHARSET и SITE_CHARSET = UTF-8
В php.ini прописано:
mbstring.internal_encoding=UTF-8
mbstring.func_overload=2
default_charset=utf-8
Даже в .htaccess добавил на всякий случай:
<IfModule mod_php7.c>
php_flag session.use_trans_sid on
php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8
php_value default_charset UTF-8
</IfModule>
В phpinfo()
| Directive | Local Value | Master Value |
|---|---|---|
| mbstring.detect_order | no value | no value |
| mbstring.encoding_translation | Off | Off |
| mbstring.func_overload | 2 | 2 |
| mbstring.http_input | no value | no value |
| mbstring.http_output | no value | no value |
| mbstring.http_output_conv_mimetypes | ^(text/|application/xhtml\+xml) | ^(text/|application/xhtml\+xml) |
| mbstring.internal_encoding | UTF-8 | UTF-8 |
| mbstring.language | neutral | neutral |
| mbstring.strict_detection | Off | Off |
| mbstring.substitute_character | no value | no value |
Хостинг: reg.ru
Версия PHP: пробовал 7.0-bx\7.1-bx\7.2-bx