@sddvxd

Почему компилятор не пропускает Unicode?

Здравствуйте! Для начинаний в WINAPI нужно было изучить юникод, его виды и запись кода:

#include <Windows.h>
#include <iostream>

using namespace std;
int main(void) {
	CHAR * c = "ANSI STRING";
	WCHAR * wc = L"Строка юникода";

	cout << wc << endl;
	cin.get();
}


при попытке скомпилировать пример мне выдается такое:

main.cpp:7:15: error: converting to execution character set: Illegal byte sequence
  WCHAR * wc = L"Строка юникода";


Объясните пожалуйста, почему так
  • Вопрос задан
  • 1143 просмотра
Решения вопроса 1
borisdenis
@borisdenis
Ленив и вреден...
В настройках проекта на вкладке GENERAL есть параметр CHARACTER SET который указывает в какой кодировке будет компилироваться программа:

3e825408153f8ddb366e6e5c20fe595e.png

Там у вас что?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
maaGames
@maaGames
Погроммирую программы
char, wchar_t вместо WCHAR.

std::wcout для вывода юникод символов.

И может потребоваться сменить локаль консоли, но это лучше погуглить, по памяти я неправильно напишу.
Ответ написан
Комментировать
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Я бы на вашем месте стандартный wchar_t использовал и выводил бы значение в wcout.
Ну и флаги компиляции возможно стоит подкрутить для WCHAR Вот этот флаг, кажется /Zc:wchar_t.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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