如何实现 qt 中qfile写出的文本 设置为unicode编码 在线等 谢谢。。。
展开全部
//主要是用到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();
//进行相关处理
}
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();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询