Задать вопрос
@AntonIgin

Как нормально изменить кодировку в Visual Studio?

Проблема такая. Пишу русскими - при компиляции лезет кракозябра. Ставлю кириллицу 866 - все нормально работает. Сохраняю, закрываю, открываю, вижу вот это:

#include <iostream>
using namespace std;

int main()
{
	cout << "Hello, World!" <<"\n" << "1. dfапЏаЁўҐв" "\n";
	cin.ignore();
}


При компиляции кракозябры становятся обычными буквам.
Добавленные при втором запуске русские буквы будут иероглифами, и смена кодировки теперь уже не помогает: говорит, некоторые знаки Юникода не были сохранены в кодовой странице. В общем, конфликт какой-то.

Что делать?
  • Вопрос задан
  • 8482 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@Tuvan
Ставлю кириллицу 866

где ставите ?
в коде подключите кириллицу ,либо setlocale'м или другими способами
Ответ написан
Комментировать
Nipheris
@Nipheris Куратор тега C++
Рабочий вариант для работы с UTF-8 строками (2015-я студия). Не забудьте пересохранить исходник в UTF-8 кодировке.
#include <iostream>
#include <windows.h>

int main()
{
	SetConsoleOutputCP(CP_UTF8);
	auto message = u8"Тест тест";
	wprintf(L"%S", message);
    return 0;
}


На будущее:
1) с юникодом и UTF-8 в частности в Винде есть некоторый гемор по ряду исторических причин (в частности, из-за того что родная юникодная кодировка WinAPI - UTF-16); нужно просто уметь решать эту проблему (если нет желания заниматься разработкой на Linux);
2) это не отменяется того факта, что нужно хорошо знать, что вы вообще делаете. VS - инструмент для работы, особенно это касается C++ проектов, и нужно разобраться с определенными вещами, чтобы им пользоваться. Это я вообще, чтобы вы подход свой поменяли.
Ответ написан
Комментировать
У вас какие-то проблемы с установленной студией. Попробуйте переустановить ее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы