2 chengbang1234 chengbang1234 于 2014.02.18 18:42 提问

Qt5中用QTextStream向txt文件中写入中文字符串,打开文件时出现乱码

在网上查了一些关于Qt中文乱码的问题,主要是因为机器的编码问题
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
但是Qt5中已经没有后两个函数了,而且我用第一个函数时,文件打开时仍是乱码,另外我在
QTextStream out(&dstfile);后添加out.setCodec(QTextCodec::codecForName("GBK"));仍不能解决问题,希望高手能帮我解决这个问题,讲解下具体的编码

QFile dstfile("d:\temp.txt");
if (dstfile.open(QIODevice::WriteOnly|QIODevice::Truncate))
{
QTextStream out(&dstfile);
out.setCodec("System");
out<<tr("你好!世界!")<<endl;
}

3个回答

yzq701128
yzq701128   2014.12.27 22:39

把中文放到一个QString中,
QString str="你好!"
out<<str;
就可以了。

yzq701128
yzq701128   2014.12.27 22:39

把中文放到一个QString中,
QString str="你好!"
out<<str;
就可以了。

icfhsfmf
icfhsfmf 亲测可以,thank you!
2 年多之前 回复
Bill_YING
Bill_YING   2015.10.22 11:17

if (dstfile.open(QIODevice::WriteOnly|QIODevice::Truncate))改为if (dstfile.open(QIODevice::WriteOnly|QIODevice::Text))

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!