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

47 lines
1.4 KiB
Markdown
Raw Normal View History

2023-01-01 18:21:01 +03:00
---
title: "UTF-8 и MinGW"
categories: ["cpp", "archive"]
date: 2015-12-03T00:00:00+03:00
draft: false
featured_image: miniature.jpg
---
Наверное, любой сталкивался с проблемой русских букв в консоли. И каждый придумывал свои костыли. Вот и я свой придумал.
<!--more-->
Имеем мы все файлы в кодировке **UTF-8**. А для нормального вывода в консоль Windows нужны исходники в кодировке 1252. Конвертировать?
Зачем? Ведь компилятор это умеет.
Так что кормим компилятору вот такие параметры:
```cmd
-finput-charset=utf-8 -fexec-charset=cp1252
```
А вывод должен иметь следующий вид:
```c
wprintf(L"Да это же русские буквы =О");
```
Нужно не забывать добавлять **L** до строки, а также вызвать **setlocale**.
Пример:
```c
#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "");
wprintf(L"Да это же русские буквы =О\n\n");
wprintf(L"Нажмите [Enter] для продолжения...");
getchar();
return 0;
}
```
![result](m_2015-12-03_181957.png "Результат")