首页 > 技术文章 > QT 读写乱码问题

suiyi78 2020-05-28 11:40 原文

先贴为敬

 

读取文件

  QTextCodec *codec = QTextCodec::codecForName("utf-8");//设置文件编码格式

    QFile file("1.txt");//此项目的地址搜索的文件
    if(!file.open(QIODevice::ReadOnly|QIODevice::Text))//判断
           return;
    while(!file.atEnd())
     {
          //读取一行文本数据

          QByteArray line = file.readAll();//读取
          //将读取到的行数据转换为Unicode



          QString str =codec->toUnicode(line);//转码
          //将得到的字符设置到编辑框中显示
          ui->plainTextEdit->setPlainText(str);//显示
      }
写入文件
 QFile file("1.txt");
         if(!file.open(QIODevice::WriteOnly|QIODevice::Text))//判断文件知否正常
    {
             QMessageBox::warning(this,QStringLiteral("警告"),
                                  file.errorString());
             return;
         }

         QTextStream out(&file);//获取转码文件
          out.setCodec("utf-8");//转码
         QString str("物品名称");//内容

         out<<str;//写入

         file.close();保存



关于文件读取,乱码的原因是因为读写的编码格式要统一

分为 文件地址,获取文件,转码,写入,或者读取

推荐阅读