setlocale(LC_CTYPE, 'ru_RU.UTF-8');
echo strtoupper("ггг");
echo setlocale(LC_CTYPE, 0); - возвращает - ru_RU.UTF-8
Да, я знаю что есть функция
mb_strtoupper, которая определяет букву на основании свойств символа Юникода, и что так будет работать
mb_strtoupper("ггг");
Но вопрос в другом. Почему если я установил
LC_CTYPE в
ru_RU.UTF-8, что должно активизировать эту локаль, для функций перевода в верхний/нижний регистры. Всё ровно функция
strtoupper("ггг"); не работает?
В
документации всё понятно описано:
setlocale ($category , $locale )
Параметр
$category - это именованная константа, определяющая категорию функций, на которые будет влиять установка локали:
LC_CTYPE - функции преобразования и классификации строк, например
strtoupper().
И я всё по логике делаю -
setlocale (LC_CTYPE, 'ru_RU.UTF-8');echo strtoupper("ггг"); - а почему тогда это не работает непонятно