Qt读取中文文本,兼容GBK&&UTF-8

来源:互联网 发布:sql 双竖线是什么意思 编辑:程序博客网 时间:2024/06/02 04:23
代码如下
QString filename = QFileDialog::getOpenFileName(NULL);
    if (filename.isEmpty())
    {
        return;
    }
    QFile file(filename);
    if (file.open(QIODevice::ReadOnly))
    {
        QByteArray encodedString = file.readAll();
        QTextCodec::ConverterState state;
        QTextCodec *codec = QTextCodec::codecForName("UTF-8");
        QString text = codec->toUnicode( encodedString.constData(),
                                         encodedString.size(), &state);
        if (state.invalidChars > 0) {
            qDebug()<<"GBK";
            text = QTextCodec::codecForName( "GBK" )->toUnicode(encodedString);
        } else {
            qDebug()<<"UTF-8";
            text = encodedString;
        }
        ui->textEdit->setText(text);
        file.close();
    }
注:
    技术在于交流、沟通,转载请注明出处并保持作品的完整性。
    作者:鱼公子哟西 原文:http://blog.csdn.net/linuxsmallping/article/details/78259594

阅读全文
0 0