QString和string的相互转换及乱码处理

转载:
http://yz0515.com/2017/02/16/QString%E5%92%8Cstring%E7%9A%84%E7%9B%B8%E4%BA%92%E8%BD%AC%E6%8D%A2%E5%8F%8A%E4%B9%B1%E7%A0%81%E5%A4%84%E7%90%86/

String和QString之间的转化

数据结构课程设计中,用Qt玩图形化,经常因为QString和string的转化出现问题,而出现一些莫名其妙的错误。
垃圾百度找了半天没有解决方案,多亏了成都-贱贱O_o哒大神的相助。(适用于QT5)

QString qstr;
string str;
str = qstr.toStdString();
qstr = QString::fromStdString(str);

虽然成功转化了,但是会出现乱码。

转化与乱码处理

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)