如何实现 qt 中qfile写出的文本 设置为unicode编码 在线等 谢谢。。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现 qt 中qfile写出的文本 设置为unicode编码 在线等 谢谢。。。相关的知识,希望对你有一定的参考价值。

参考技术A //主要是用到QTextStream的setCodec()函数
QFile file("in.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QTextStream in(&file);
in.setCodec("unicode");
while (!in.atEnd())

QString line = in.readLine();
//进行相关处理
追问

你这个是读取勒 我需要写入 而且 写入的时候用这种方式写出来的东西是有问题的 我测试过

追答

我刚才测试了,很遗憾,达不到你的要求。尝试了unicode编码,写入文件总是乱码。只有用gb18030 才不会写入文件乱码。 下面是代码,或许对你来说没啥用。

#include
#include
#include
#include
#include
#include

int main(int argc, char *argv[])

QApplication a(argc, argv);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030"));
QLabel textLabel;
QFile file("in.txt");
if (!file.open(QIODevice::ReadWrite | QIODevice::Text))

qDebug()<<"open file failure!!!!";

QTextStream out(&file);
// out.setCodec("unicode");
QString text ("中文文本写入测试");
// out << text.unicode();
out<<text;

out.seek(0);
while (!out.atEnd())

QString line = out.readLine();
//进行相关处理
textLabel.setText(line);


textLabel.show();
return a.exec();

本回答被提问者采纳
参考技术B qfile写出的时候你设置一下编码方式,输出的时候API里面有选项,你去仔细看看qfile的API追问

qfile 没得编码设置的 我找过了 。。。没有setCodec 或者setEncoding之类的函数

追答

那就按照楼下的方法试试,一行一行的处理,实在不得行就一个个字符的处理,

以上是关于如何实现 qt 中qfile写出的文本 设置为unicode编码 在线等 谢谢。。。的主要内容,如果未能解决你的问题,请参考以下文章

Qt,QFile 写入特定行

Qt (C++):QFile 成功创建文本文件但不写入

Qt:如何打印 QFile?

Qt中如何将信息保存到文本文件并且保留原来的信息,比如在原来的文本文件中添加一行信息。

qfile获取文件第一行

Qt QFile文件读写