QMediaPlayer неправильно воспринимает QUrl с кирилицей



  • Всем доброго времени суток!
    У меня проблема в следующем коде:

    QString text = ui->inputEdit->toPlainText(); // Получаю русский текст из Plain Text Edit
    QUrl preparedUrl = QUrl("http://translate.googleapis.com/translate_tts?ie=UTF-8&client=gtx&tl=ru&q=" + text); // Создаю ссылку озвучивания гугл переводчика
    qDebug() << preparedUrl; // Проверяю, выводится обычная ссылка с русским текстом, которую если вставить в браузер, то можно прослушать
    QMediaPlayer *player = new QMediaPlayer;
    player->setMedia(preparedUrl); 
    player->play(); // Пытаюсь воспроизвести, но вместо того, что я слышу в браузере, я слышу "Знак вопроса" за каждый символ.
    

    Подскажите, пожалуйста, куда копать?
    Проблема только на Windows, на Linux воспроизводит ссылку нормально.

    Вот что любопытно, если сделать вот так:

    QString text = QString::fromLocal8Bit("Привет мир!")
    QUrl preparedUrl = QUrl("http://translate.googleapis.com/translate_tts?ie=UTF-8&client=gtx&tl=ru&q=" + text);
    QMediaPlayer *player = new QMediaPlayer;
    player->setMedia(preparedUrl); 
    player->play();
    

    ... то все работает нормально :) Но я же получаю в первом примере с Plain Text Edit уже в QString, который в UTF-8. Как такое может быть?



  • Для начала, в QString не UTF-8, а UTF-16

    Попробуйте через QUrlQuery::addQueryItem урл формировать


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.