UID:119418
UID:118494
20091001753:QByteArray 的数据,转换成用字符表达,是 toHex,反之 fromHex但是这与 QString::toUtf8 又是有区别的hex 是把16进制的数据用字符表达,utf8 是文本编码....... (2019-07-09 20:44)
UID:166110
QString str;str = str.append( str1);
fsu0413:这段需要保证str1是有效的utf8(Qt5)/有效的Latin1(Qt4),否则转换会出现乱码....... (2019-07-09 21:33)
foxgod:就是出错了,解析出来的char字段不一样了,你觉得应该如何做呢?需要对str1进行编码吗? (2019-07-09 21:36)
fsu0413:你要转换这段二进制为字符串还是?如果是的话知道原来是什么编码么?加密了么? (2019-07-09 21:52)
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)
fsu0413:用json的面向对象的方法传啊,string又不是bytearray,这玩意不是用来存raw数据的 (2019-07-09 22:01)
foxgod:你是什么意思???我不是很明白
fsu0413:哦对,还有一种情况,就是你的结构体里可能有非POD的数据,举另外一个例子struct { QString x;};这种是不能直接传bytearray的....... (2019-07-09 22:13)
UID:7394
dbzhang800:如果你贴的代码不是示意代码,而是你真的测试代码,那么暴露的问题有点多1. 第一行 QByteArray 构造时,里面含有 "\x00",这代表C字符串的结束,之后的东西都被截断了2. 第四行 str1 使用UTF8转换成QString,前提是str1是有效的utf8字符串,但你这显然不是....... (2019-07-09 23:32)
foxgod:结构体转char*,在转为QByteArray,是否可以转QString,在插入json里面呢?? (2019-07-10 08:46)
fsu0413:为什么要沉迷于转成char*呢?结构体和本来在json里和对象结构类似,直接用json对象多好 (2019-07-10 23:09)
dbzhang800:QByteArray 和 QString 互转有无数种方式如果你QByteArray中的字符不可控,而且QString只是个中转,只是为了稍后能转回QByteArray,那么latin1,latin2,latin3,... 等干这个事情都是安全的。gbk,utf8等干这个明显是不合适的。如果QByteArray中字符不可控,先转成可控字符明显 .. (2019-07-10 11:28)
foxgod:和别的平台对接,别的平台的不是qt,传给他们的是char *,传过来的也是char* (2019-07-11 08:47)
fsu0413:Json是平台无关的 (2019-07-13 08:07)