Qt上でCSVを作成しTextEditに表示したい
Solved
Japanese
-
お世話になっております。
今回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ですが、諸事情によりアップデートは出来ません。よろしくお願いいたします。
-
ファイルを読み込む時にもコーデックを指定する必要がありますね。
QTextStream in(&textfile);
in.setCodec(QTextCodec::codecForName("utf-8"));です。