Пользователь 230117 Посетитель Сообщений: 87 andyzee |
#1 0 22.05.2014 13:32:36 Проверка системы ругается на dbconn.php:
phpinfo() :
|
||||
Пользователь 230117 Посетитель Сообщений: 87 andyzee |
#2 1 22.05.2014 18:32:06 Проблема заключалась в том, что строковые функции продолжали выполняться для однобайтовой кодировки. Помогла принудительная установка
в php_interface/init.php |
||
Не помогло! Любая форма искусства — это обман! |
|
а тут помогите расшифровать что не так сверлим дрелью задний проход кровь кишки битрикс сапорт |
|
Пользователь 102760 Посетитель Сообщений: 36 |
#8 0 03.10.2019 11:06:53 У меня возникла такая же проблема: при проверке сайта появилось сообщение:
Сайт работает в однобайтовой кодировке, phpinfo выдает:
Подскажите как исправить эту ошибку |
||||
А какая версия php стоит? |
|
Пользователь 102760 Посетитель Сообщений: 36 |
#10 0 04.10.2019 09:20:35
PHP Version 7.1.30 |
||
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
ТОЛЬКО для сайтов в кодировке WINDOWS-1251 (CP1251)
Проверка
echo strtoupper("ёпрст");
Должно вернуть ЁПРСТ, а возвращает ёпрст
Исправление на веб окружении битрикс:
установить русскую локаль для букв и стандартную локаль для чисел в /home/bitrix/ext_www/ваш сайт.рф/bitrix/php_interface/dbconn.php
setlocale(LC_ALL, 'ru_RU.CP1251'); setlocale(LC_NUMERIC,'C');
Если русская локаль ru_RU.CP1251 на самом сервере не установлена то делаем следующее
1. Проверяем локали из-под root (CentOs)
2. Устанавливаем если не стоят
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
3. Тестируем
4. Перезапускаем сервис httpd
service httpd restart
Назад в раздел
Подписаться на новые материалы раздела:
Почему появляется ошибка?
На сервере некорректно настроена локаль. Обычно ошибка появляется только для сайтов, работающих на кодировке windows-1251.
Как исправить ошибку?
Если сайт работает на кодировке windows-1251, необходимо в SSH-консоли выполнить данный код:
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251
После этого в файле /bitrix/php_interface/dbconn.php добавить следующие строки:
setlocale(LC_ALL, 'ru_RU.CP1251');
setlocale(LC_NUMERIC, 'C');
Кроме того, следует убедиться, что для сайта выставлены правильные значения PHP-параметров:
- default_charset = cp1251
- mbstring.internal_encoding = cp1251
- mbstring.func_overload = 0
После этого необходимо перезапустить сервер Apache:
service httpd restart
Требуется наша помощь?
Мы имеем огромный опыт, на протяжении почти 15 лет помогая клиентам в решении самых различных проблем на их сайтах, в т.ч. самых сложных.
Поэтому, если Вы не имеете возможности решить эту проблему самостоятельно, обращайтесь к нам — мы поможем.
Ошибка возникает на сайтах в однобайтовой кодировке. Тестовый скрипт:
<?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
Веб-серверы
-
Главная
-
Сниппеты
-
Строковые функции strtoupper и strtolower работают некорректно
Когда сайт на битриксе работает в однобайтовой кодировке(cp1251), при тестировании конфигурации возникает ошибка.
Чтобы устранить ошибку, установите русскую локаль для букв и стандартную локаль для чисел в dbconn.php
setlocale(LC_ALL, 'ru_RU.CP1251');
setlocale(LC_NUMERIC,'C');
Теги: setlocale, cp1251