Еще дополнение к релизу 7.5.0 (в основной пост уже не помещается)
Примечание L: исправление проблем со старыми сайтами в кодировке windows-1251Для старых сайтов в кодировке windows-1251, например созданных на версии 7.4.3 или младше, могут быть следующие проблемы:
1) не работает
Система обновлений - требует
mb_internal_encoding('Windows-1251'); в
dbconn.php2) при включенных предупреждениях
Система обновлений не работает из-за варнинга
PHP Warning: htmlspecialchars(): charset `latin' not supported, assuming utf-83)
Проверка системы выдает ошибку - Строковые функции strtoupper и strtolower работают некорректно
Как это исправить руками:
1) сама
Система обновлений говорит что делать
Код |
---|
Пожалуйста, добавьте в файл dbconn.php строку mb_internal_encoding('Windows-1251'); |
Добавляем в файл bitrix/php_interface/dbconn.php сайта строку:
Код |
---|
mb_internal_encoding('Windows-1251'); |
2) в конфигурационном файле httpd сайта -
/etc/httpd/bx/conf/bx_ext_[_имя_сайта_].conf, где
[_имя_сайта_] - имя вашего сайта, заменить строку
Код |
---|
php_admin_value default_charset latin |
на
Код |
---|
php_admin_value default_charset cp1251 |
и перезапустить httpd:
Код |
---|
systemctl restart httpd.service |
3) командой проверяем есть ли локаль
ru_RU.cp1251 в системе:
Код |
---|
locale -a | grep ru_RU.cp1251 -ic |
Если ответ 0 - нету, если 1 - есть.
Если нет, один раз выполняем команду:
Код |
---|
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251 |
Добавляем в файл
bitrix/php_interface/dbconn.php сайта в кодировке windows-1251 две строки:
Код |
---|
setlocale(LC_ALL, 'ru_RU.CP1251' );
setlocale(LC_NUMERIC, 'C' ); |
и перезапускаем httpd:
Код |
---|
systemctl restart httpd.service |
Автоматически мы не стали делать логику, которая поправит эти моменты при установке пакета или еще каким-либо образом.
С версии 7.5.0 сайт, созданный в кодировке windows-1251, этих проблем не имеет)