Software_Cheng 2014-02-18 10:42 采纳率: 0%
浏览 10420

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 2014-12-27 14:39
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝