И-за чего может меняться кодировка при strtoupper?

программирование php apache

В начале кода стоит: setlocale(LC_ALL, 'ru_RU');

Когда переменная вида 'ячма' проходит через функцию strtoupper, получаю на выходе 'џчМА'

Примечание:
не помогает... и уточние setlocale(LC_CTYPE, 'ru_RU.CP1251'); результатов также не принесло.

Примечание:
Пока что решил не очень красивым методом:

function toupper($content){
$content = strtr($content, 'абвгдеёжзийклмнорпстуфхцчшщъьыэюяqwertyuiopasdfghjklzxcvbnm',
'АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯQWERTYUIOPASDFGHJKLZXCVBNM');
return strtoupper($content);
}

function tolower($content){
$content = strtr($content, 'АБВГДЕЁЖЗИЙКЛМНОРПСТУФХЦЧШЩЪЬЫЭЮЯQWERTYUIOPASDFGHJKLZXCVBNM',
'абвгдеёжзийклмнорпстуфхцчшщъьыэюяqwertyuiopasdfghjklzxcvbnm');
return strtolower($content);
}

Если кто сможет подсказать истинные причины сбоев... пишите >.<
Ответы:
Попробуй так:
setlocale(LC_CTYPE, "de_AT")
А еще можно попробовать что нибудь типо этого:
de_AT.utf8
Т.е. задать кодировку.
Кстати, ты проверяешь что тебе функция setlocale возвращает? Может там ошибка?


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.