Случайно получилось решить проблему. Привожу код:
QTextDecoder *decoder = QTextCodec::codecForName("cp866")->makeDecoder(QTextCodec::IgnoreHeader);
QString badString = "ѓќ‘Ќ/‘Ў®а\u00ADЁЄЁ \u00AD ¬®\u00ADв ¦ ®Ў®а㤮ў \u00ADЁп/";
QString correctString = decoder->toUnicode(badString.toLocal8Bit());
qDebug() << correctString; //выведет "ГЭСН/Сборники на монтаж оборудования/"
Не уверен насчет кроссплатформенности
UPDATE
Понадобилось больше функционала от библиотеки, в итоге начал использовать сам класс QuaZip. А там проблема решается просто:
QuaZip *zip = new QuaZip();
zip->setFileNameCodec("IBM866");