powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вывод кириллицы в консоли
37 сообщений из 37, показаны все 2 страниц
Вывод кириллицы в консоли
    #40093957
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять, что сделать, чтобы скомпилированное в Visual Studio Code консольное приложение корректно выводило кириллицу.
Подскажите, пожалуйста!
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40093973
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasper_,
попробуй загуглить строчку "C++ кириллица в консоли".
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40093976
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, конечно, уже пробовал. Ничего не помогает.
Например, в Visual Studio 2019 при setlocale(LC_ALL, ""); - проблем нет. Проблемы возникают у скомпилированного в VS Code приложения, даже примитивного:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 #include <iostream>
 #include <cstdlib>
 
using namespace std;

 int main() {
     setlocale(LC_ALL, "");
     cout << "Привет мир!" << endl;
     system("pause");
     return 0;
 };


При запуске exe-шника вместо Привет мир - херь.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40093982
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй
Код: plaintext
1.
setlocale(LC_ALL, ".UTF8")


и
Код: plaintext
1.
setlocale(LC_ALL, ".1251")
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40093985
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

нет, не помогает
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40093990
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_, а что покажет в консоли

Код: plaintext
1.
c:\> chcp



?
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094002
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Текущая кодовая страница: 866
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094008
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
setlocale(...) может сменить не только кодировку. Но и разные там десятичные точки на запятые. И прочие подобные подводные грабли, которые всплывут стремительно и внезапно.
Чтобы кодировка была ага, а остальное по-прежнему работало, то курим SetConsoleOutputCP(...) и SetConsoleCP(...).
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094012
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я,
при этом, слетает кодировка уже в консоли редактора при выполнении программы
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094018
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasper_,

что ты как маленький, выводи сообщения на английском.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094021
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

На каком английском?
Вместо Привет мир - всякая хрень, вот в чем вопрос.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094023
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasper_
чтобы скомпилированное в Visual Studio Code консольное приложение

VSC компилировать умеет? Да ладно.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094024
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

конечно, только немного настроить нужно
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094026
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какой шрифт установлен в твоей консоли?
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094027
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

Konsolas, но его смена ничего не дает
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094028
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поставь Lucida Console.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094029
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_
ъъъъъ,

Konsolas, но его смена ничего не дает
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094031
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_При запуске exe-шника вместо Привет мир - херь.

Внимание, вопрос: в какой кодировке этот исходник?
Внимание, вопрос номер два: в какой кодировке текст "Привет мир!" находится в скомпилированном экзешнике?
Внимание, вопрос номер три: какая кодовая страница в системе установлена как ANSI (язык для не-юникодных программ)?
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094032
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

1. utf-8
на 2-й и 3-й - затрудняюсь ответить.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094033
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

При этом, Visual Studio 2019 - компилирует без проблем.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094041
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_на 2-й и 3-й - затрудняюсь ответить.

Ну так иди читай, гугли, учись. Когда затруднения исчезнут - возвращайся, а пока
задача тебе не по силам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094045
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как уже предлагали выше, попробуй WinAPI
Код: plaintext
1.
SetConsoleOutputCP(1251);


или для UTF-8
Код: plaintext
1.
SetConsoleOutputCP(65001);
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094095
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_
Dimitry Sibiryakov,

1. utf-8
на 2-й и 3-й - затрудняюсь ответить.

Это очень плохо дружище. Разработчик должен уметь оперировать не только символами
но и информацией в сыром виде. Подсказка. Русская буква "A" в win1251 имеет код 0xC0
а в cp866 - 0x80

Если ты посмотришь на исходник в hex-редакторе то в центральной части будут
полосы hex-символов в которых можно угадать коды букв.

Кодировка utf-8 более сложная для прочтения глазами. Там надо делать битовые операции
с кодами символов. Но детектировать ее наличие легче. В ней латинские символы занимают 1 байт
а все прочие национальные - обычно 2 байта. Их видно глазами по характерным чередованиям
(четные-нечетные байты).

Есть еще кодировка koi8r. Ее любили всякие фрики от фидо-нет и радиолюбители.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094106
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

премного благодарен
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094107
kasper_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подсказать, как поднастроить VS Code - не судьба?
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094110
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kasper_как поднастроить VS Code - не судьба?

Прочитать документацию на компилятор в целях найти ключи указания кодировки
исходников ты всё равно не осилишь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094111
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в программах на С++ использую кодировку ANSI (Win1251), а при выводе на консоль делаю преобразование
строк ANSI->OEM (PC866). И никогда никаких проблем.
И если у ТС программа в UTF-8, то нужно делать преобразование UTF-8->OEM (PC866).

P.S. ИМХО - зачем писать программы для декстопа в UTF-8? Что это даёт, кроме геморроя?.
Данные могут быть в любой кодировке, тут уж как придется, но сама программа...
Неужели редактор IDE не поддерживает ANSI? Не понимаю. Поясните, спецы, я отсталый...
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094118
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не спец в десктопах. Вообще не знаю как там щас принято разрабатывать. Но хороший UI должен
легко интернационализироваться. Если вы делаете для внутреннего рынка - то ... вам конечно пофиг
на это.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094119
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iпри выводе на консоль делаю преобразование строк ANSI->OEM (PC866). И никогда
никаких проблем.

Пока не наткнёшься на консоль в которой выполнена команда chcp. Преобразовывать
всё же надо не в жёсткий OEM, а в текущую кодировку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094127
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
del, сорри сглючил
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094147
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Есть еще кодировка koi8r. Ее любили всякие фрики от фидо-нет и радиолюбители.
Ну неправда.
"фрики от фидо-нет" использовали 866-ую, потому что она была традицией в MS DOS и OS/2. А KOI8R была традицией в usenet потому что она была основана на unix серверах с традиционным 7-ми битным char в nntp. Там действительно была нужда в кодировке которая могла выжить при потере восьмого бита. А потом, с постепенным апгрейдом серверов и протоколов, с телом сообщения на unsigned char, нужда в KOI8R отпала и начался переход на 866 и 1251, и эту битву быстро выиграл 1251 потому что уже существовала Чикага и было проще делать клиентов под нее.
А вот "фрики от фидо-нет" так и остались на 866-ой. Впрочем, последний раз я запускал GoldEd в 2007-ом и с тех пор может он и начал поддерживать utf8, но вряд-ли. Архивы то в 866-ой хранятся.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094152
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AFAIK KOI8-R очень древняя, может 70-ые, может 60-ые годы.
Т.ч. в серьезных организациях, на серьезных старых машинах, была принята KOI8-R. А вот всякая "школота" пользовалась 866 ))) и 1251. Школота победила )))
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094163
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне просто много текста доставалось в этой кодировке из fido. Книжки. Фантастика. Анекдоты. Всякая всячина.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094168
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
AFAIK KOI8-R очень древняя, может 70-ые, может 60-ые годы.
Вот только не надо путать ДКОИ на базе EBCDIC и RFC 1489 , который, как и положено, основан на ASCII.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094225
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Мне просто много текста доставалось в этой кодировке из fido. Книжки. Фантастика. Анекдоты. Всякая всячина.
Это явно с гейтов на Релком. В самом Фидо внутри все было (да и есть) в 866-ой. А вот гейты страдали от конвертации очень долго.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094226
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
AFAIK KOI8-R очень древняя, может 70-ые, может 60-ые годы.
Т.ч. в серьезных организациях, на серьезных старых машинах, была принята KOI8-R. А вот всякая "школота" пользовалась 866 ))) и 1251. Школота победила )))
90-ые вообще-то. Не знаю когда конкретно ее изобрели, но популярность эта кодировка получила в 1990-ом, с выпуском Релкома. Который по существу был русским Usenet (та же технология), но на русском сервере и рассчитанная на русскоязычную аудиторию.

А вот где-то в середине 70-х была изобретена ДКОИ - она жила в первую очередь на телетайпах и использовалась на мейнфреймах ЕС серии. А как ЕСки ушли на свалку истории, так и про эту кодировку все забыли.
...
Рейтинг: 0 / 0
Вывод кириллицы в консоли
    #40094231
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС наверно в шоке после вышенаписанного Какой смысл ворошить историю?

Нынче 1251 или UTF-8, остальное антиквариат.
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вывод кириллицы в консоли
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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