在用qt开发程序的过程中,经常要进行QString与c++ string、char*之间的字符串转换,没有中文还好,怎么写都行,有中文的时候经常会乱码,这里直接给出中英文通用的转换,一次搞定,不再乱码
QString qstr = QStringLiteral("我是QString");
std::string str = "我是string";
const char* cstr = "我是char*";
//QString转string、char*
std::string qstr_to_str = qstr.toLocal8Bit();//我是QString
const char* qstr_to_cstr = qstr_to_str.c_str();//我是QString
//string转QString、char*
QString str_to_qstr = QString::fromLocal8Bit(str.c_str());//我是string
const char* str_to_cstr = str.c_str();//我是string
//char*转QString、string
QString cstr_to_qstr = QString::fromLocal8Bit(cstr);//我是char*
std::string cstr_to_str = cstr;//我是char*
1, 主要就是用到了toLocal8Bit()、fromLocal8Bit、c_str()来回转
2,QString转char*的时候借助c++标准字符串类型string,注意分两句,不要连写