将std :: string转换为QString

我有一个std::string content ,我知道包含UTF-8数据。 我想将其转换为QString 。 我该怎么做,避免Qt中的ASCII转换?

有一个从fromUtf8调用的QString函数需要一个const char*

 QString str = QString::fromUtf8(content.c_str()); 

QString::fromStdString(content)可以正常工作。 它应该从fromUtf8(content.data(), int(content.size()))返回完全相同的结果。

通常,进行转换的最好方法是使用fromUtf8的方法,但是问题在于当您具有string语言环境依赖性时。

在这些情况下,最好使用fromLocal8Bit 。 例:

 std::string str = "ëxample"; QString qs = QString::fromLocal8Bit(str.c_str());