none
Как переключить кодировку файла, содержащего текст консольного приложения? RRS feed

  • Вопрос

  • Здравствуйте.

    При выборе проекта "консольное приложение" сообщения, выводимые на консоль во время работы программы выводятся кракозябрами. Чтобы они выводились нормально приходится открывать файл с текстом программы в FARе, менять кодировку файла из ANSI в ОЕМ, затем компилировать заново. Но после этого при открытии файла - исходника программы в среде визуал-студио, все строки на русском - становятся строками на татаро-монгольском. И снова приходится прибегать к FARу.

    Где в настройках визуал-студио чего надо поменять, чтоб жить вот без такого-вот геморроя. Спасибо.

    22 июля 2013 г. 12:55

Ответы

  • Понятно, спасибо за комплименты :)

    Пробуйте так:

    SetConsoleCP(866);

    SetConsoleOutputCP(866);


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    • Помечено в качестве ответа dos866 23 июля 2013 г. 12:02
    23 июля 2013 г. 11:30
    Модератор

Все ответы

  • Здравствуйте,

    Попробуйте поменять в Панеле Управления в Региональных настройках - Дополнительно - Язык программ, не поддерживающих Юникод, поставьте русский.


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"


    23 июля 2013 г. 7:42
    Модератор
  • Попробуйте поменять в Панеле Управления в Региональных настройках - Дополнительно - Язык программ, не поддерживающих Юникод, поставьте русский.



    Он уже установлен там русским. Я здесь совсем не про это - я про то, что мелкомягкие занимаются обманом покупателя, предлагая много лет купить свою среду для создания "консольных приложений" (в том числе), хотя она для их создания не подходит в принципе, так как VisualStudio создает файлы исходников без учета кодировки, применяемой в консоли.

    В противном случае где-то должна быть кнопочка. ("...где у него кнопка, Ури?")

    • Изменено dos866 23 июля 2013 г. 10:24 добавил текста
    23 июля 2013 г. 9:13
  • У каждого свое мнение. Что касается кодировки файла по умолчанию, смотрите эту тему:

    http://stackoverflow.com/questions/696627/how-to-set-standard-encoding-in-visual-studio


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    23 июля 2013 г. 10:28
    Модератор
  • (Maksim, почему не предложили почитать ответы на китайском языке? Не знаете китайского? Тогда почему вы решили, что я должен знать английский? Я же задал вопрос на русском - русским людям, причем вопрос по продукту, продаваемому на территории России. Причем вопрос про вывод текстовых строк в консоли на кириллице. Или не так?)

    Ответ неверный. Речь вообще не об UTF-8. Прошу вас - не пытайтесь отвечать, если не представляете, о чем речь. Зря тратите время.

    Вопрос был о том, что текстовый файл программы, который должен быть в кодировке DOS866,  Visual Studio создает в кодировке Win1251.

    (что для создания консольных программ является ошибкой. Ситуация от версии к версии VC не меняется, от чего я делаю вывод, что если это не преднамеренное втюхивание сырого продукта, то по меньшей мере разгильдяйство разработчиков)

    Ещё раз - уважаемые коллеги, знает ли кто-нибудь решение, которое позволит создавать с помощью VC консольное приложение, выдающее во время работы сообщения на русском языке без необходимости конвертации исходников в DOS866 (сторонними программами) перед компиляцией?


    • Изменено dos866 23 июля 2013 г. 10:59 запятые
    23 июля 2013 г. 10:54
  • Понятно, спасибо за комплименты :)

    Пробуйте так:

    SetConsoleCP(866);

    SetConsoleOutputCP(866);


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    • Помечено в качестве ответа dos866 23 июля 2013 г. 12:02
    23 июля 2013 г. 11:30
    Модератор