如下代码是一个读取文件的函数,但是我的文件中出现中文后,遍历容器会出现乱码的问题,请问这种情况应该怎么解决呢?
void Book::getBookInfo()
{
// 获取当前工作路径
QString currentPath = QDir::currentPath();
// 使用相对路径构造文件路径
QString filePath = "/bookInfo.csv";
QFile * file = new QFile(currentPath + filePath);
file->setParent(this);
bool ok = file->open(QIODevice::ReadOnly | QIODevice::Text);
if(!ok)
{
qDebug()<<"No File";
return;
}
bool isOneLine = true;
QVector<QString> v;
while(!file->atEnd())
{
v.clear();
//一行行读取数据
QString line = file->readLine();
if(isOneLine)
{
isOneLine = false;
continue;
}
line = line.trimmed();
//以逗号作为分割
QStringList list = line.split(',');
for(int i = 1;i<5;i++)
{
QString str = QString(list[i]);
v.push_back(str);
}
this->bookInfo.insert(QString(line[0]),v);
}
}
QFile *file = new QFile(currentPath + filePath);
file->setParent(this);
*QTextCodec codec = QTextCodec::codecForName("UTF-8");
file->setTextCodec(codec);
bool ok = file->open(QIODevice::ReadOnly | QIODevice::Text);
加上粗体这两句试一下