回复: QString 转QBytearray 出错??
#6 回 fsu0413 的帖子 [foxgod 07-09 21:58]
fsu0413:你要转换这段二进制为字符串还是?
如果是的话知道原来是什么编码么?加密了么? (2019-07-09 21:52)
原来是个结构体,我转为了char* ,然后转为了QByteArray,在转为QString,传给接收方后,在解析出QByteArray,
对方的char* 转为QByteArray后的数据是
QByteArray str1 = "\xAB\xAB\x01\x01\x01""2\xC0\x1F\xA8\xC0p\x17\xC0\x1F\xA8\xC0q\x17\x00\x00\x00\x03\x00\x00\x00\xCB\xD1\xD1\x00\x00\xBA\xBA";
#7 回 foxgod 的帖子 [fsu0413 07-09 22:01]
foxgod:原来是个结构体,我转为了char* ,然后转为了QByteArray,在转为QString ,传给接收方后,在解析出QByteArray,
对方的char* 转为QByteArray后的数据是
QByteArray str1 = "\xAB\xAB\x01\x01\x01""2\xC0\x1F\xA8\xC0p\x17\xC0\x1F\xA8\xC0q\x17\x00\x0 .. (2019-07-09 21:58)
用json的面向对象的方法传啊,string又不是bytearray,这玩意不是用来存raw数据的
#8 回 fsu0413 的帖子 [foxgod 07-09 22:03]
fsu0413:用json的面向对象的方法传啊,string又不是bytearray,这玩意不是用来存raw数据的 (2019-07-09 22:01)
你是什么意思???我不是很明白
#9 回 foxgod 的帖子 [fsu0413 07-09 22:10]
foxgod:
你是什么意思???我不是很明白
举个例子
struct {
int a;
char b[50]; // 这玩意是真正的字符串
bool c;
} str = {...};
QJsonObject ob;
ob["a"] = str.a;
ob["b"] = QString::fromUtf8(str.b);
ob["c"] = str.c;
QJsonDocument doc(ob);
不是
QJsonObject ob;
ob["str"] = QString::fromUtf8(QByteArray((void *)(&str)));
QJsonDocument doc(ob);
#10 [fsu0413 07-09 22:13]
哦对,还有一种情况,就是你的结构体里可能有非POD的数据,举另外一个例子
struct {
QString x;
};
这种是不能直接传bytearray的