ifstream读取txt中的中文数据转成QString出现乱码
使用ifstream从txt文本中读取中文数据到string,再将string转成QString输出时出现了乱码。
分析:如果ifstream能成功从txt文本中读出中文数据,那大概率txt用的编码是ANSI编码(GBK就是ANSI的一种),那么在转成QString前要先调节编码为GBK,再转QString就不会出错了。
string str;
QTextCodec *codec = QTextCodec::codecForName("GBK"); // 根据实际编码调整
QString qstr = codec->toUnicode(str.c_str());