在 Qt 中读取文件里的中文,需要使用正确的编码方式进行读取。如果文件是 UTF-8 编码,则可以直接读取;如果文件是 GBK 或者其他编码方式,则需要先将其转换成 UTF-8 编码,然后再进行读取。
以下是一个简单的示例代码,演示了如何读取一个 UTF-8 编码的文本文件:
#include <QFile>
#include <QTextStream>
int main()
{
// 打开文件
QFile file("test.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return -1;
// 使用 QTextStream 读取文件内容
QTextStream in(&file);
in.setCodec("UTF-8"); // 设置编码方式为 UTF-8
QString content = in.readAll();
// 输出文件内容
qDebug() << content;
// 关闭文件
file.close();
return 0;
}
在上面的代码中,通过 QFile
打开文件,并指定了 QIODevice::ReadOnly
和 QIODevice::Text
标志表示以只读文本格式打开文件。然后,使用 QTextStream
来读取文件内容,并通过 setCodec()
函数设置编码方式为 UTF-8。最后,使用 readAll()
函数读取所有文件内容,并存储在一个 QString
对象中。最后,关闭文件并输出文件内容。
需要注意的是,在使用 QTextStream
读取文件内容时,必须设置正确的编码方式,否则可能出现乱码或者无法读取中文的情况。