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("ггг");
- а почему тогда это не работает непонятно