85

std::string contentUTF-8データが含まれていることがわかっています。に変換したいQString。QtでのASCIIからの変換を避けて、どうすればよいですか?

4

4 に答える 4

111

QString::fromStdString(content)より堅牢であるため、より優れています。またstd::string、UTF-8でエンコードされている場合は、とまったく同じ結果が得られることに注意してくださいQString::fromUtf8(content.data(), int(content.size()))

于 2013-09-01T11:32:27.330 に答える
98

:を取るQStringと呼ばれる関数がありますfromUtf8const char*

QString str = QString::fromUtf8(content.c_str());
于 2010-12-02T17:51:11.910 に答える
9

Qt5 fromStdStringは内部的にfromUtf8を使用するため、次の両方を使用できます。

inline QString QString::fromStdString(const std::string& s) 
{
return fromUtf8(s.data(), int(s.size()));
}
于 2019-01-15T09:42:35.003 に答える
8

通常、変換を行う最良の方法はfromUtf8メソッドを使用することですが、問題は文字列がロケールに依存している場合です。

このような場合は、fromLocal8Bitを使用することをお勧めします。例:

std::string str = "ëxample";
QString qs = QString::fromLocal8Bit(str.c_str());
于 2015-09-02T12:34:40.863 に答える