我尝试了以下内容:
qDebug() << QByteArray("\x00\x10\x00\x00").size();
我得到0而不是我想到的4个女巫。
保存这4个字节的数据有什么好的数据类型,因为我需要稍后将它们写入套接字,这样它们必须保持与上面看到的完全一样?
答案 0 :(得分:4)
构造函数QByteArray(const char* str)
在参数上使用qstrlen
。由于您的字符串以0x00字节开头,qstrlen
返回0,因此生成的QByteArray为0字节长。
要避免qstrlen
检查,请使用QByteArray(const char* str, int size)
构造函数:
qDebug() << QByteArray("\x00\x10\x00\x00", 4).size();
将按预期打印4。