自动把GBK(ANSI)编码转换成Unicode编码:
QString GetUnicodeText(const QByteArray &text_)
{
QTextCodec::ConverterState state;
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QString strContent = codec->toUnicode(text_.constData(), text.size(), &state);
if (state.invalidChars > 0)
{
strContent = QTextCodec::codecForName("GBK")->toUnicode(text_);
}
else
{
strContent = text_;
}
return strContent ;
}
/////////////////////////////////////////
std::string cstr;
QString qstring;
//从std::string 到QString
qstring = QString(QString::fromLocal8Bit(cstr.c_str()));
//从QString 到 std::string
cstr = string((const char *)qstring.toLocal8Bit());
//不需要从gbk转到utf8
QString value_content = QString::fromStdString(vec[i].content);
QString value_classname = QString::fromStdString(vec[i].classname);
博客给出了在Qt开发中自动将GBK(ANSI)编码转换成Unicode编码的代码示例,还展示了std::string与QString之间的相互转换代码,以及无需从GBK转到UTF - 8时的字符串转换方式。
1090

被折叠的 条评论
为什么被折叠?



