自动把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);