QByteArray可以存储原生的二进制数据和8位编码的文本数据。
对于文件,即便是一个文本文件,读出时也可以按照二进制的形式读出,这就是二进制格式。
如果把这些二进制的0、1串按照编码解释成一个个字符,就是文本形式了。
因 此,QByteArray实际上是原生的二进制,但是也可以当作是文本。
把经典的C字符串复制到QString的函数将不会复制结尾的0字符。
QString的QChar数组(可以通过unicode()返回)通常不以零结尾。
如果你需要把QString传递到一个需要C的以零结尾的字符串,请使用latin1()。
注意如果你发现你正在混合使用QCString、QString和QByteArray,这将会导致很多不必要的复制并且也许会预示着你正在处理的真实自然数据是不确定的。
如果数据是以零结尾的八位数据,请使用QCString;如果它是没有结尾的(也就是包含0)八位数据,请使用QByteArray;如果它是文本,请使用QString。
为了方便期间,QByteArray自动的保证“最后一个字节之后的那个位是”。这就使得QByteArray可以很容易的转换成const char *。
参考网址:https://wenku.baidu.com/view/af558a1284c24028915f804d2b160b4e767f81a8.html。