我有一个std::string content
我知道包含 UTF-8 数据的文件。我想将其转换为QString
. 我该怎么做,避免 Qt 中的 from-ASCII 转换?
问问题
98959 次
4 回答
111
QString::fromStdString(content)
更好,因为它更健壮。另请注意,如果std::string
以 UTF-8 编码,则它应该给出与QString::fromUtf8(content.data(), int(content.size()))
.
于 2013-09-01T11:32:27.330 回答
98
There's a QString
function called fromUtf8
that takes a const 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 回答