Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Update: Forum Guidelines & Code of Conduct

    Solved Qt上でCSVを作成しTextEditに表示したい

    Japanese
    2
    3
    2528
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Toju last edited by

      お世話になっております。

      今回Qt上でCSVファイルを作成したものをTextEditに表示をさせたいのですが、
      その際に日本語・漢字が文字化けた状態で表示されてしまいます。

      実際のコードは以下のようになります。
      ・ファイルの作成
      下記の「s」は引数に設定しております。
      出力したい文字列を「s」に格納し下記の処理をしています。

          QString File = (PATH);
          QFile textfile(File);
          if (QFile::exists(File)) textfile.open(QIODevice::Append); 
      	else textfile.open(QIODevice::WriteOnly);
      	QTextStream t(&textfile);
          t.setCodec(QTextCodec::codecForName("utf-8"));
          t << s;
      	textfile.close();
      

      ・ファイルの読み込み・TextEditに読み込み

              QString file =(PATH);
              QFile textfile(file); 
              if (!textfile.open(QIODevice::ReadOnly)) {
                  QString errStr = "File Open Error:" + textfile.errorString();
                  qDebug() << errStr;
                  return;
              }
              QTextStream in(&textfile);
              QString Comment = QString::fromLocal8Bit("");
      
              while (!in.atEnd()) {
                  QString ReadTx = in.readLine();
                  QStringList list = ReadTx.split(",");
                  Comment += QString("%1 %2 %3 %4\r\n").arg(list[0]).arg(list[1]).arg(list[2]).arg(list[3]);
              }
              textfile.close();
              ui->textEdit_3->setText(Comment);
      

      少々わかりにくいコードではありますが
      ご教授いただければ幸いです。

      Qt Ver:4.8.4
      Qt Creator Ver:2.7.0
      Qtのversionですが、諸事情によりアップデートは出来ません。

      よろしくお願いいたします。

      1 Reply Last reply Reply Quote 0
      • Y
        YAMAMOTO Atsushi last edited by YAMAMOTO Atsushi

        ファイルを読み込む時にもコーデックを指定する必要がありますね。

        QTextStream in(&textfile);
        in.setCodec(QTextCodec::codecForName("utf-8"));

        です。

        1 Reply Last reply Reply Quote 0
        • T
          Toju last edited by

          ご返信ありがとうございました。

          無事出力することが出来ました。
          また何かありましたらよろしくお願いいたします。

          1 Reply Last reply Reply Quote 0
          • First post
            Last post