#include <QtCore/QCoreApplication>
#include <QtCore/QFile>
#include <QtCore/QTextCodec>
#include <QtCore/QTextStream>
#include <QtCore/QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QFile file("test.txt");
    if (file.open(QIODevice::ReadWrite | QIODevice::Text))
    {
        QTextStream stream(&file);
        stream.setAutoDetectUnicode(1);
        stream.setGenerateByteOrderMark(1);
        stream.setCodec("gbk");
        //问题是在这能不能判定文件txt的编码格式求指教啊
//        stream.setCodec("utf8");
//        const QString &text = stream.readAll();
//        stream.seek(0);
//        stream.setCodec(QTextCodec::codecForName("gbk"));
//        stream.setGenerateByteOrderMark(true);
//        stream << text;
//        stream.seek(0);
        qDebug() << stream.readAll();
    }
    return 0;
}
 
在线只为求答案~~~~, 路过的Qt朋友们帮我看下,急用啊 愁死人啊,客户要求在导入windows 或linux 文件都可以实现正确读取,我们知道在windows里是 gbk ,而 linux 里是  utf8啊  这不是坑爹吗? 遇到同样的问题的qt 朋友顶下。单独的windows 和 linux 都实现了 我就想是有没有一个方法判定下编码。。。。用if 语句实现, 但是没能实现。