码迷,mamicode.com
首页 > 其他好文 > 详细

QByteArray 转 QString 及其失败的原因

时间:2020-11-25 12:34:17      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:flex   tor   img   qstring   ref   http   rgb   ast   shadow   

QByteArray转QString

QByteArray转QString,网上有很多的转换方法。最方便得方法是以下这种方法:

QByteArray a;
QString str = QString(a);
qDebug()<<"str"<<str;

还有一种就转换成char *型的:

QByteArray plaintext;
const unsigned char *m_plaintext = reinterpret_cast<const unsigned char*>(plaintext.data());
qDebug()<<"plaintext"<<plaintext;

这种方法最后打印即QDebug输出的转换结果都是一个空的值。

原因:

此时应该用DeBug调试模式看里 QByteArray 的数据,QByteArray 是一个二制的字符流 。如果你所看到的字符流如下图一样是以 “\0” 开头的,然而在转换过程中遇到 "\0" 这个字符串就会自动和结束了。同理,如果二进制的字符流中有 “\0” 也会自动结束,造成数据丢失。

技术图片

QByteArray 转 QString 及其失败的原因

标签:flex   tor   img   qstring   ref   http   rgb   ast   shadow   

原文地址:https://www.cnblogs.com/wickhamchen/p/14016341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!