Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / setlocale(LC_ALL,"Russian") toupper и Кодировка / 7 сообщений из 7, страница 1 из 1
15.03.2007, 15:09
    #34393658
XNut
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
setlocale(LC_ALL,"Russian") toupper и Кодировка
Пишу консольное приложение на BCB 6
Нужно воспользоваться функцией toupper
чтобы работало с русскими буквами выполняю
Код: plaintext
setlocale(LC_ALL,"Russian")
оно возвращает
LC_MONETARY=Russian_Russia.866
LC_TIME=Russian_Russia.866
LC_NUMERIC=Russian_Russia.866
LC_COLLATE=Russian_Russia.866
LC_CTYPE=Russian_Russia.866

Т.е. вроде бы используется кодировка 866 (DOS), но функция toupper (и т.п.) работает как в кодировке 1251. Т.е. русскими буквами считаются символы с кодами 192-255

Как настроить программу на нужную мне кодировку?
...
Рейтинг: 0 / 0
15.03.2007, 15:21
    #34393715
setlocale(LC_ALL,"Russian") toupper и Кодировка
смотря для какой платформы..
я делал

"ru_RU.CP1251" для виндов и VS
"rus" для FreeBSD и GCC

для BCB попробовал бы "Russian_Russia.1251"
...
Рейтинг: 0 / 0
15.03.2007, 15:44
    #34393836
XNut
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
setlocale(LC_ALL,"Russian") toupper и Кодировка
Вот именно от 1251 я хочу избавится, потому что на экране (консоли) все отображается в 866

Или тогда надо заставить консоль воспринимать клавишу 'я' как 255-й символ и соответственно отображать на экране
...
Рейтинг: 0 / 0
15.03.2007, 15:53
    #34393865
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
setlocale(LC_ALL,"Russian") toupper и Кодировка
если toupper отработал корректно с 1251, то можно после этого перевести с помощью

WideCharToMultiByte(CP_OEMCP, ...)

к нужной кодировке
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
15.03.2007, 16:05
    #34393915
XNut
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
setlocale(LC_ALL,"Russian") toupper и Кодировка
мне надо не регистр поменять, а чтобы функции корректно работали
...
Рейтинг: 0 / 0
15.03.2007, 16:31
    #34393997
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
setlocale(LC_ALL,"Russian") toupper и Кодировка
у toupper два аргумента.
...
Рейтинг: 0 / 0
15.03.2007, 16:36
    #34394011
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
setlocale(LC_ALL,"Russian") toupper и Кодировка
Ой, или ты сишными библиотеками пользуешься?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / setlocale(LC_ALL,"Russian") toupper и Кодировка / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]