Qt去读中文文档乱码解决方法

代码如下    
    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();   
       }

顺便记录一下,Qt在写文档时QSting是支持中文的,但是在file.write()时,需要写为 file.write(qString.toUtf8());

猜你喜欢

转载自blog.csdn.net/qq_33485434/article/details/81541074
今日推荐