LINUX.ORG.RU

проблемы с локалью в Fedora7


0

0

Привет всем.

Не работает локаль правильно в Федоре 7. Раньше проблем на ФриБСД не было. Вот код, в котором to_lower не работает.

#include <string> #include <iostream> #include <locale>

#include <boost/algorithm/string.hpp>

int main() { std::string s = "ЙцУкЕН"; // utf8

std::setlocale(LC_ALL, ""); std::cout << boost::to_lower_copy(s) << std::endl;

std::locale loc("ru_RU.UTF-8"); std::cout << boost::to_lower_copy(s, loc) << std::endl;

return 0; }

вот вывод locale

LANG=ru_RU.UTF-8 LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=

Проблема, видимо, где-то глубоко, так как

echo qйq | tr '[:lower:]' '[:upper:]'

выводит

QйQ

наверно что-то не так с glibc, хотя все стоит и рабоает "из коробки". Посоветуйте как быть? Куда копать?

Заранее спасиб!

anonymous

Ответ на: комментарий от no-dashi

>> Раньше проблем на ФриБСД не было >А ты локаль такую же как на FreeBSD поставил?

я имел ввиду, что приведенный выше код работал нормально. а локаль на фрибсд была win1251

anonymous
()
Ответ на: комментарий от no-dashi

проверял уже - не работает!

да и смысл кастыли такие делать - "должно" работать для любой локали

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.