mmote.ru/content/posts/utf8-mingw/index.md

1.4 KiB
Raw Permalink Blame History

title categories date draft featured_image
UTF-8 и MinGW
cpp
archive
2015-12-03T00:00:00+03:00 false miniature.jpg

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

Имеем мы все файлы в кодировке 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