栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【QT】【bug解决】【QByteArray转QString丢失数据】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【QT】【bug解决】【QByteArray转QString丢失数据】

QT的直接转换有bug。

Widget::Widget(QWidget *parent):QWidget(parent){
    QFile A("C:/z.zip");
    A.open(QIODevice::ReadOnly);
    QByteArray X=A.readAll();
    QString Y=X;
    qDebug()< 

运行后会发现,在转QString时,x00后面的内容丢失。

QByteArray:PKx03x04x14x00x00x00bx00xE8……

QString:PKx03x04x14

对此,解决方式是:

QString QByteArray_TO_QString(QByteArray BYTE){
    return QString::fromLatin1(BYTE.toHex());
}

QByteArray QString_TO_QByteArray(QString STR){
    return QByteArray::fromHex(STR.toLatin1());
}

Widget::Widget(QWidget *parent):QWidget(parent){
    QFile A("C:/z.zip");
    A.open(QIODevice::ReadOnly);
    QByteArray X=A.readAll();
    QString Y=QByteArray_TO_QString(X);
    QByteArray Z=QString_TO_QByteArray(Y);
    qDebug()< 

运行后:

X:QByteArray:PKx03x04x14x00x00x00bx00xE8……

Y:QString:504b03041400000008……

Z:QByteArray:PKx03x04x14x00x00x00bx00xE8……

成功。这样,我将QByteArray转成QString,放入JSON中用来TCP通讯,从而实现文件传输。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/718326.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号