Почему QProcess выводит некорректный результат?

Необходимо с помощью QProcess запустить скрипт, написанный на питоне. Скрип принимает на ввод два значения, после чего выводит результат. Никаких промежуточных выводов скрипт не делает. Скрипт скомпилирован в .exe файл

Код у меня для этого следующий (С++):

QProcess process(this);
process.start("Translator.exe");
process.waitForStarted(-1);
process.write("Table\n");
process.waitForBytesWritten(); //Не совсем уверен в именно такой расстановке этих функций
process.write("en-ru\n"); 
process.waitForBytesWritten(); //Однако от изменения их расположения ничего не меняется
process.waitForReadyRead();
qDebug() << process.readAllStandardOutput();
process.closeWriteChannel();
process.kill();

Я вызываю kill(), так как скрипт по завершению ожидает ввода чего угодно, чтобы закрыть программу

Проблема, собственно, в чём: скрипт должен вывести "Стол" (Это переводчик). Однако вместо этого выводится: "\xD2\xE0\xE1\xEB\xE8\xF6\xE0\r\n" и никакие манипуляции это исправить не могут.

Дополнительно кидаю код на питоне:

import requests 
import json

def getTranslate(text, lang_code = 'en-ru'):
    url = 'https://translate.yandex.net/api/v1.5/tr.json/translate?'
    key = 'trnsl.1.1.20190227T075339Z.1b02a9ab6d4a47cc.f37d50831b51374ee600fd6aa0259419fd7ecd97'
    lang = lang_code; 
    r = requests.post(url, data={'key': key, 'text': text, 'lang': lang})  
    return json.loads(r.text)['text'][0]

txt = input();#Сюда вводится "Table"
lang = input();#Здесь "en-ru"

print(getTranslate(txt, lang)) //Тут я ожидаю получить "Стол"
input();

Наперёд говоря, скрипт работает правильно, впрочем, как и .exe.

Подскажите, пожалуйста, что идёт не так?


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

Автор решения: GRUB_666

Исчёрпывающее решение находится тут: Как установить правильную кодировку в QProcess?

Эта моя собственная тема. Там я задавал более конкретный вопрос.

→ Ссылка