qt 向文件中写入中文字符串显示乱码

QSettings *configIniRead = new QSettings("./signalLog.ini", QSettings::IniFormat);
QString date = configIniRead->value("/Date/checkDate").toString();
QString dateName = configIniRead->value("/Date/name").toString();
file.write(dateName.toStdString().c_str());
file.write("\r\n");
file.write("检测人签名");

txt文档打开是这样的:
检测时间
妫€娴嬩汉绛惧悕

根据网上方法设置一些列方法都没用
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

qt

3个回答

你的file是QFile对象吧?
改成这样试试:
file.write(dateName.toUtf8());

m0_37756916
ZhbTy 之前看的就是这个博客,还是没有用
大约 3 年之前 回复

CPP中添加#pragma execution_character_set("utf-8")

文章:https://blog.csdn.net/mr_xuexi/article/details/98628141
qt5.11亲测有用。我是utf8

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐