Собственно говоря пишу на Dev C++
В консоли после компиляции русские символы отображаются нормально, а вот при работе с файлами начинаются проблемы.
Например, при записи в файл, текст пишется в кодировек OEM 866.
Конечно хотелось бы чтобы писалось всё в Windows-1251.
Подскажите, можно ли на уровне самой программы (а не на уровне компилятора), задать в какой кодировке будет писаться текст в файл?
В консоли после компиляции русские символы отображаются нормально, а вот при работе с файлами начинаются проблемы.
Например, при записи в файл, текст пишется в кодировек OEM 866.
Конечно хотелось бы чтобы писалось всё в Windows-1251.
Подскажите, можно ли на уровне самой программы (а не на уровне компилятора), задать в какой кодировке будет писаться текст в файл?
Отсюда скачиваете файл libiconv-1.13.1-1-mingw32-dev.tar.lzma, распаковываете его (7zip точно умеет и lzma, и tar распаковывать). Получаете две папки - lib и include. Их содержимое копируете в соответствующие папки Dev C++.
Далее, в исходном коде где надо подключаете iconv.h, а в параметрах проекта (Alt+P) на вкладке "Параметры" жмёте "Добавить библиотеку" - и в папке lib выбираете файл libiconv.dll.a
Функции, входящие в библиотеку описаны тут: iconv(), iconv_open(), iconv_close() и iconvctl().
Вот небольшой пример:
Помогла функция OemToAnsi.