web-dev-qa-db-ja.com

std :: stringをQStringに変換します

std::string content私が知っているのはUTF-8データを含んでいます。 QString に変換したい。 Qtのfrom-ASCII変換を回避して、どうすればよいですか?

64
Fred Foo

fromUtf8をとる const char* というQString関数があります。

QString str = QString::fromUtf8(content.c_str());
81
Michael Mrozek

QString::fromStdString(content)はより堅牢であるため、より優れています。また、_std::string_がUTF-8でエンコードされている場合、QString::fromUtf8(content.data(), int(content.size()))とまったく同じ結果になるはずです。

74
Jackpap

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

これらの場合、 fromLocal8Bit を使用することをお勧めします。例:

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

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

inline QString QString::fromStdString(const std::string& s) 
{
return fromUtf8(s.data(), int(s.size()));
}
0
maxa