@landen.nienow
Обработка кириллицы на C в Linux выполняется путем использования кодировки UTF-8.
UTF-8 является переменной длиной кодирования, которая использует от одного до четырех байтов для представления символов Юникода. Кириллические символы в UTF-8 представлены в диапазоне от U+0400 до U+04FF.
Для работы с кириллицей на C в Linux нужно убедиться, что все используемые функции правильно работают с UTF-8. Вот несколько основных правил, которые следует учитывать при работе с кириллицей в C на Linux:
1
|
setlocale(LC_ALL, "ru_RU.utf8");
|
Например, следующий код на C читает строку на русском языке из стандартного ввода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> #include <stdlib.h> #include <wchar.h> #include <locale.h> int main(void) { setlocale(LC_ALL, "ru_RU.utf8"); wchar_t buf[256]; fgetws(buf, 256, stdin); wprintf(L"Вы ввели: %ls ", buf); return EXIT_SUCCESS; } |
Этот код использует функцию fgetws() для чтения строки из стандартного ввода и функцию wprintf() для вывода строки на экран. С помощью функции setlocale() устанавливается локаль на UTF-8.