Проблема с выводом кирилицы с libzip

Мне нужно открыть ZIP архив, затем найти в нём файл, и вывести содержимое этого файла(файл .txt). Для этого я нашел пример этого который работает с библиотекой libzip. Но когда я запускаю эту программу, то символы английской раскладки выводятся нормально, а вот символы кирилицы выводятся каким то набором символов. Подскажите пожалуйста что можно сделать в этой ситуации.

Код

#include <iostream>
#include <zip.h>
#include <locale.h>
using namespace std;

int main()
{
    setlocale(LC_CTYPE, "");
    //Open the ZIP archive
    int err = 0;
    zip* z = zip_open("file.zip", 0, &err);

    //Search for the file of given name
    const char* name = "text.txt";
    struct zip_stat st;
    zip_stat_init(&st);
    zip_stat(z, name, 0, &st);

    //Alloc memory for its uncompressed contents
    char* contents = new char[st.size];

    //Read the compressed file
    zip_file* f = zip_fopen(z, name, 0);
    zip_fread(f, contents, st.size);
    zip_fclose(f);

    //And close the archive
    zip_close(z);
    cout << contents;
    //Do something with the contents
    //delete allocated memory
    delete[] contents;
}

Ответы (0 шт):