Qt工作笔记-QXmlStreamReader中的字符编码的坑
以本人这篇博文的源码为例:
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中的字符编码的坑相关推荐
- Qt工作笔记-QLineEdit中使用setValidator里面的坑
这里有个坑,不管是这么写 QDoubleValidator *doubleValidator=new QDoubleValidator();doubleValidator->setRange(0 ...
- Qt工作笔记-Qt5中中文编码方面的笔记
目前在使用国内的数据库和实时库接口. 说句实话,国内的东西与国外的东西比,在用户体验和接口调用上比还是存在很大的距离. 个人喜欢用QString去存储数据.个人感觉QTL比STL开发起来要快点 这里有 ...
- Qt工作笔记-profile中INSTALLS的使用
最近在撸国外的Qt教程,可能是我开始崇洋媚外了,国外的东西的确香. 在此记录下查漏补缺的内容,方便以后查阅. pro文件中可以配置INSTALLS这个变量 使用make install后可以将编译好的 ...
- Qt工作笔记-QSS中关于QCombox的设置
QSS源码如下: QComboBox { border: 1px solid rgb(0, 0, 0); border-radius: 3px; padding: 1px 18px 1px 3px; ...
- Qt工作笔记-QPlainTextEdit中数据的获取
逻辑如下: 1.使用QPlainText中的documnet获取文档指针: 2.遍历这个文档指针(操作和适配器一样) 程序运行截图如下: 源码如下: widget.h #ifndef WIDGET_H ...
- Qt工作笔记-QTreeWidgetItem中type的基本用法
这是一个很好的东西. 话不多说,运行截图如下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #in ...
- Qt工作笔记-QTreeWidgetItem中的CheckState以及遍历选中的CheckBox
话不多说,程序运行如下: 原理如下: 使用QTreeWidget添加QTreeWidgetItem,并且打开QTreeWidgetItem里面的setCheckState,这个选项. 就可以实现在QT ...
- Qt工作笔记-QTreeWidget中itemAt中的坑
程序运行截图如下: 用:QTreeWidgetItem *currItem=ui->treeWidget->itemAt(0,0); (0,0)点坐标,当滚动条没有拉动的时候: 点击这个页 ...
- Qt工作笔记-QSS中关于QScrollBar的设置
如下面的这个QSS代码: QScrollBar:vertical{ width:16px; border:1px solid rgb(255,0,0); margin:0px,0px,0px,0px; ...
最新文章
- SaaS创业型企业如何打破销售瓶颈?
- C可变参数详解及其函数设计
- Use Ghidra To Reverse GenyMotion—Suggestion
- layui 动态添加 表格数据
- Linux Shell常用技巧(九)
- Kafka Consumer多线程消费
- linux嵌入式开发箱跑马灯,跑马灯实验(STM32F4开发板)
- linux ftp服务器已拒绝访问,linux ftp服务器已拒绝
- php插入方法,有什么办法能把一条php语句插入到方法里呢?
- 第六届华为创新杯编程大赛第二轮(2014.4.29)
- 机房维护 网拷_利用网络还原系统(远志)快速维护机房
- Java实现xlsx文件下载和文件上传
- 【WSN通信】基于matlab A_Star改进LEACH多跳传输协议【含Matlab源码 487期】
- 基于Java+Swing+Socket实现中国象棋-网络版
- CXPlain: Causal Explanations for Model Interpretation under Uncertainty
- tomcat上部署的solr的移植以及数据的备份与恢复
- Bootstrap4使用教程
- 在线加密解密网站大全2022(更新中ing)
- 在html中写响应式布局的代码,CSS实现响应式布局的方法
- 简要讨论python在拼多多关键字搜索、商品详情API接口做好电商选品的作用