質問

私は持っています std::string content 私が知っていることは、UTF-8データが含まれています。私はそれをaに変換したいです QString. 。 QTでのASSIIからの変換を避けて、どうすればよいですか?

役に立ちましたか?

解決

あります QString 呼び出された関数 fromUtf8 それはにかかります const char*:

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

他のヒント

QString::fromStdString(content) より堅牢なので、より良いです。また、その場合にも注意してください std::string UTF-8でエンコードされている場合、それはまったく同じ結果を与える必要があります QString::fromUtf8(content.data(), int(content.size())).

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

これらの場合、使用することが望ましいです fromLocal8bit. 。例:

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

以来 QT5 frontdstring fromutf8から内部的に使用するため、両方を使用できます。

inline QString QString::fromStdString(const std::string& s) 
{
return fromUtf8(s.data(), int(s.size()));
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top