Системное администрирование

Битрикс и ошибка «Строковые функции strtoupper и strtolower работают некорректно»

Ошибка возникает на сайтах в однобайтовой кодировке. Тестовый скрипт:
<?php echo strtoupper("абвгд"); ?>
должен вернуть АБВГД, а возвращает абвгд.
Исправление: установить русскую локаль для букв и стандартную локаль для чисел в dbconn.php
setlocale(LC_ALL, 'ru_RU.CP1251');
setlocale(LC_NUMERIC,'C');
Локаль ru_RU.CP1251 должна быть установлена на сервере, можно проверить командой:
locale -a | grep ru_RU
Если не установлена, нужно установить:
Только для CentOS 8 — установить пакет с локалями:
dnf install glibc-locale-source
Установить саму локаль:
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
Проверить установку локали:
locale -a | grep ru_RU
Перезапустить веб-сервер Apache/Httpd:
systemctl restart httpd
2021-11-08 11:54 CMS Веб-серверы