UTF-8 и MinGW

Наверное, любой сталкивался с проблемой русских букв в консоли. И каждый придумывал свои костыли. Вот и я свой придумал.

Имеем мы все файлы в кодировке UTF-8. А для нормального вывода в консоль Windows нужны исходники в кодировке 1252. Конвертировать?

Зачем? Ведь компилятор это умеет.

Так что кормим компилятору вот такие параметры:

-finput-charset=utf-8 -fexec-charset=cp1252

А вывод должен иметь следующий вид:

wprintf(L"Да это же русские буквы =О");

Нужно не забывать добавлять L до строки, а также вызвать setlocale.

Пример:

#include <stdio.h>
#include <locale.h>

int main() {
    setlocale(LC_ALL, "");
    wprintf(L"Да это же русские буквы =О\n\n");
    wprintf(L"Нажмите [Enter] для продолжения...");
    getchar();
    return 0;
}
result
Результат
comments powered by Disqus