以本人这篇博文的源码为例:

https://blog.csdn.net/qq78442761/article/details/80501909

源码改成如下所示:

#include <QApplication>
#include <QDebug>
#include <QFile>
#include <QVector>
#include <QXmlStreamReader>int main(int argc, char *argv[])
{QApplication a(argc, argv);QFile file("C:\\Users\\Administrator\\Desktop\\DrawPic\\1.dat");if(!file.open(QFile::ReadOnly|QFile::Text)){qDebug()<<"读取XML文件时,文件打开失败";return false;}QXmlStreamReader reader;reader.setDevice(&file);while(!reader.atEnd()){reader.readNext();qDebug()<<reader.text();}file.close();return a.exec();
}

xml文件就是这样的

<test><data1><name1>你妹</name1><name2>你妹妹</name2><name3>你妹妹妹</name3><name4>你妹妹妹妹</name4><name5>你妹妹妹妹妹</name5><double>3.1415</double><int1>10</int1><attribution include="100"><int3>1000</int3></attribution></data1><data2><name1>你姐</name1><name2>你姐姐</name2><name3>你姐姐姐</name3><name4>你姐姐姐姐</name4><name5>你姐姐姐姐姐</name5><double>6.6666</double><int1>66</int1><attribution include="666"><int3>66666</int3></attribution></data2>
</test>

把这个编码改成ANSI编码存储,如下图所示:

<?xml   version="1.0"   encoding="GBK"?>

这一行是去掉了的,

此时是读不了数据的,因为Qt Creator 默认采用UTF-8编码,而setCodec这个函数在QXmlStreamReader中并没有,所有读不了。

对于这个坑有以下几个方法:

1.修改程序字符编码;

2.加上encoding,让QXmlStreamReader知道应该采用咋样的编码;

3.保存文件的时候,采用UTF-8的格式存储

Qt工作笔记-QXmlStreamReader中的字符编码的坑相关推荐

  1. Qt工作笔记-QLineEdit中使用setValidator里面的坑

    这里有个坑,不管是这么写 QDoubleValidator *doubleValidator=new QDoubleValidator();doubleValidator->setRange(0 ...

  2. Qt工作笔记-Qt5中中文编码方面的笔记

    目前在使用国内的数据库和实时库接口. 说句实话,国内的东西与国外的东西比,在用户体验和接口调用上比还是存在很大的距离. 个人喜欢用QString去存储数据.个人感觉QTL比STL开发起来要快点 这里有 ...

  3. Qt工作笔记-profile中INSTALLS的使用

    最近在撸国外的Qt教程,可能是我开始崇洋媚外了,国外的东西的确香. 在此记录下查漏补缺的内容,方便以后查阅. pro文件中可以配置INSTALLS这个变量 使用make install后可以将编译好的 ...

  4. Qt工作笔记-QSS中关于QCombox的设置

    QSS源码如下: QComboBox { border: 1px solid rgb(0, 0, 0); border-radius: 3px; padding: 1px 18px 1px 3px; ...

  5. Qt工作笔记-QPlainTextEdit中数据的获取

    逻辑如下: 1.使用QPlainText中的documnet获取文档指针: 2.遍历这个文档指针(操作和适配器一样) 程序运行截图如下: 源码如下: widget.h #ifndef WIDGET_H ...

  6. Qt工作笔记-QTreeWidgetItem中type的基本用法

    这是一个很好的东西. 话不多说,运行截图如下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #in ...

  7. Qt工作笔记-QTreeWidgetItem中的CheckState以及遍历选中的CheckBox

    话不多说,程序运行如下: 原理如下: 使用QTreeWidget添加QTreeWidgetItem,并且打开QTreeWidgetItem里面的setCheckState,这个选项. 就可以实现在QT ...

  8. Qt工作笔记-QTreeWidget中itemAt中的坑

    程序运行截图如下: 用:QTreeWidgetItem *currItem=ui->treeWidget->itemAt(0,0); (0,0)点坐标,当滚动条没有拉动的时候: 点击这个页 ...

  9. Qt工作笔记-QSS中关于QScrollBar的设置

    如下面的这个QSS代码: QScrollBar:vertical{ width:16px; border:1px solid rgb(255,0,0); margin:0px,0px,0px,0px; ...

最新文章

  1. SaaS创业型企业如何打破销售瓶颈?
  2. C可变参数详解及其函数设计
  3. Use Ghidra To Reverse GenyMotion—Suggestion
  4. layui 动态添加 表格数据
  5. Linux Shell常用技巧(九)
  6. Kafka Consumer多线程消费
  7. linux嵌入式开发箱跑马灯,跑马灯实验(STM32F4开发板)
  8. linux ftp服务器已拒绝访问,linux ftp服务器已拒绝
  9. php插入方法,有什么办法能把一条php语句插入到方法里呢?
  10. 第六届华为创新杯编程大赛第二轮(2014.4.29)
  11. 机房维护 网拷_利用网络还原系统(远志)快速维护机房
  12. Java实现xlsx文件下载和文件上传
  13. 【WSN通信】基于matlab A_Star改进LEACH多跳传输协议【含Matlab源码 487期】
  14. 基于Java+Swing+Socket实现中国象棋-网络版
  15. CXPlain: Causal Explanations for Model Interpretation under Uncertainty
  16. tomcat上部署的solr的移植以及数据的备份与恢复
  17. Bootstrap4使用教程
  18. 在线加密解密网站大全2022(更新中ing)
  19. 在html中写响应式布局的代码,CSS实现响应式布局的方法
  20. 简要讨论python在拼多多关键字搜索、商品详情API接口做好电商选品的作用

热门文章

  1. API – MultiByteToWideChar的用法
  2. 将整张网页存成png图片
  3. 小记 | 从 0 到 1,看我如何玩弄千万日志于股掌
  4. 程序员常用编程工具: VS Code,那些你不得不知道的小知识!
  5. ubuntu之apache正向代理及反向代理(ProxyPass\ProxyPassReverse)
  6. 用好这个新功能,报表数据安全瞬间提升一个等级!
  7. 老码农的人生需要多线程的去生活
  8. 又是一年毕业高峰期,分享下我的2年工作经验
  9. 【转载】SQL 模糊查询
  10. 国产品牌“爱国者”首次杀入数码相机十强