Как можно сделать перекодировку символов вывода printf юникод в cp866?
Как можно стандартными средствами библиотек cb сделать перекодировку символов вывода printf в cp866 ?
Ответы (1 шт):
Автор решения: Sergey
→ Ссылка
Мне нужно выводить в консоль данные в формате cp 866.
Не понятно. У Вас есть (к примеру) текстовый файл в кодировке cp866 и вам надо выдать его на консоль в кодировке utf8 ? Или наоборот - вохд в utf-8 а на консоль Вы хотите писать в cp866 ?
Вы не указали ОС, под которой будет работать Ваша программа. Но, не думаю, что на AVR работает Windows. Поэтому:
ICONV(3) Руководство программиста Linux ICONV(3)
ИМЯ
iconv - изменяет кодировку символов
ОБЗОР
#include <iconv.h>
size_t iconv(iconv_t cd,
char **inbuf, size_t *inbytesleft,
char **outbuf, size_t *outbytesleft);
ОПИСАНИЕ
Функция iconv() преобразует последовательность символов с одной кодировкой в
последовательность символов с другой кодировкой. Аргумент cd должен быть дескриптором
преобразования, созданным ранее с помощью функции iconv_open(3); дескриптор преобразования
определяет кодировки символов, которые iconv() использует для преобразования. Аргумент
inbuf содержит адрес переменной, которая указывает на первый символ входной
последовательности; в inbytesleft содержится количество байт в этом буфере. В аргументе
outbuf содержится адрес переменной, которая указывает на первый байт выходного буфера; в
outbytesleft содержится количество байт в выходном буфере.