QString iii="abc";
int num=iii.size();//num=3
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_3);
QString iii="abc";
out<<iii;//或out<<iii.toAscii();
int num=block.size();//num=3+4。这里为什么会是7个字节?
假如我要把字符串"111111111111111"等价与
0x310x310x310x310x310x310x310x310x310x310x310x310x310x310x310x00
发送,如何实现?
本来想用
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_3);
QString iii="111111111111111";
out<<iii.toAscii();
out<<'\0';
实现,结果发现和
out << quint8(0x31)<<quint8(0x31)<<quint8(0x31)<<quint8(0x31)<<quint8(0x31)
<<quint8(0x31)<<quint8(0x31)<<quint8(0x31)<<quint8(0x31)<<quint8(0x31)
<<quint8(0x31)<<quint8(0x31)<<quint8(0x31)<<quint8(0x31)<<quint8(0x31);
out<<quint8('\0');//这种效果是我想要的。
有很大的差距,这是为什么?