
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
![]() |
|
|
Наверняка тема не новая..
Использую Embarcadero C Builder, VCL проект. Понадобилась консоль. Создаю следующим образом: ![]() ![]() #include <Windows.h> #include <locale> int main() { setlocale(LC_ALL, "Russian"); AllocConsole(); AttachConsole(GetCurrentProcessId()) ; SetConsoleCP(1251); // CP_WINUNICODE - тоже пробовал SetConsoleOutputCP(1251); // CP_WINUNICODE - тоже пробовал freopen("CON", "w", stdout ); printf("Русский\n"); ... FreeConsole(); } В результате вижу в консоли каракули (правда, из русских букв). Что я в данном случае делаю не правильно ? |
Сообщ.
#2
,
|
|
|
866 cp
|
Сообщ.
#3
,
|
|
|
Если я правильно понял:
![]() ![]() SetConsoleCP(866); SetConsoleOutputCP(866); Без результата. Ради эксперимента проверил на другой машине, тоже самое. |
Сообщ.
#4
,
|
|
|
![]() ![]() setlocale(LC_ALL, "RU-ru"); SetConsoleCP(866); Так заработало у меня. |
Сообщ.
#5
,
|
|
|
У меня при установке разных кодировок стоят одни и те же каракули (символы не меняются)..
Может ![]() ![]() SetConsoleCP(866); foreach, покажите пожалуйста пример того, как Вы делаете. |
Сообщ.
#6
,
|
|
|
Делаю так:
![]() ![]() #include <Windows.h> #include <locale> int main() { //AllocConsole(); //AttachConsole(GetCurrentProcessId()); setlocale(LC_ALL, "RU-ru"); SetConsoleCP(866); printf("Русский\n"); //FreeConsole(); return 0; } P.S. Использую Visual Studio, может там как-то по-другому? Добавлено Дело именно в установке локали, т.к. ![]() ![]() setlocale(LC_ALL, "Russian"); |
![]() |
Сообщ.
#7
,
|
|
Это у тебя кодировка исходника OEM-ная. Попробуй ANSI или UNICODE.
|