Qt std :: string в QString со специальными символами - PullRequest
0 голосов
/ 10 июля 2020

У меня Qt5 (5.7), и я столкнулся со странной проблемой. Мне не удалось преобразовать std :: string (вывод проверенного алгоритма) в QString, используя следующие простые методы.

Есть ли у кого-нибудь идея?

вот простые примеры, которые я тестировал ( ни одна из этих строк не работает ...). каждый раз, когда наблюдатель Visual Studio выдавал мне неизвестный символ для выделенных букв.

std::string l_s = "&é'(-è_çà)=";
QString l = QString::fromUtf8(l_s.data(), l_s.size());
QString lll = QString::fromStdString(l_s);

QByteArray l_ba = QString::fromStdString(l_s).toUtf8();

QString l_t = "&é'(-è_çà)=";
std::string res = l_t.toStdString(); // here I lost information

QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QString ss = codec->toUnicode(l_s.c_str());

1 Ответ

1 голос
/ 13 июля 2020

Это сработало для меня. В системе Linux. Использование Qt 5.6.0:

#include <QString>

#include <iostream>
#include <string>

int main()
{
    std::string str = "&é(-è_çà)=";
    std::cout << "std::string: " << str << std::endl;

    QString qstr = QString::fromStdString(str);
    std::cout << "QString: " << qstr.toStdString() << std::endl;

    return 0;
}

Вывод:

std::string: &é(-è_çà)=
QString: &é(-è_çà)=
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...