Russian Qt Forum

Qt => ActiveX => Тема начата: chiffa от Ноябрь 02, 2021, 13:29



Название: Русские символы в параметрах dynamicCall
Отправлено: chiffa от Ноябрь 02, 2021, 13:29
Добрый день. Пытаюсь вызвать ОЛЕ-объект с параметрами - русскими символами, но по итогу получаю на выходе кракозябру (ОЛЕ-драйвер логирует запросы). Поддерживаемая кодировка Windows-1251 и UTF-8, но никак не получается правильно отправить текст. Делаю так:

Код:
setlocale(LC_ALL, "Russian");

    QString fileToPrint = (qApp->applicationDirPath()+"/"+"test.txt";

       QFile filePrt(fileToPrint);

          QTextStream inPrt(& filePrt);
          inPrt.setCodec("Windows-1251");

          if(!filePrt.open(QFile::ReadOnly | QFile::Text))
          {
              qDebug() << "File failed to open";
              return;
          }

         QStringList toPrint = inPrt.readAll().trimmed().split("\n");

QByteArray strEncSend;

strEncSend+=toPrint [i].replace("\f", "");

object.dynamicCall("FreeTextLine(\""+strEncSend+"\")");

но на выходе, в логах, получаю:

Цитировать
02.11.2021 12:25:17.87|Debug|вызов отработан: FreeTextLine("???°?????µ?»?°?", None) = Success

Так же пробовал через
Код:
QTextCodec *codec = QTextCodec::codecForName("windows-1251");
                QByteArray strEnc = codec->fromUnicode(toPrint [i].replace("\f", ""));

подскажите, как правильно задать кодировку? Спасибо!