Здравствуйте
Читаю строку "привет", написанную мной в виджете QLineEdit:
QByteArray arrBlock;
QDataStream bufferOut(&arrBlock, QIODevice::WriteOnly);
bufferOut.setVersion(QDataStream::Qt_5_3);
bufferOut << pLineEdit->text();
В режиме отладки смотрю содержимое массива байт (arrBlock):
0x00 0x00 0x00 0x0C - непонятная мне структура
0x04 0x3f 0x04 0x40 0x04 0x38 0x04 0x32 0x04 0x35 0x04 0x42 - "привет" в UNICODE
Зачем мне нужно было это все? Я передаю эти байты на сервер и пытаюсь их как-то отобразить на экране:
QString str(byteArray);
pTextEdit->append(str);
Байты приходят в целости и сохранности, но в QTextEdit вылезают битые символы, вернее только первый символ. Понять не могу, беру, беру значение типа, инициализирую его тем-же типом, а выходит не так, как я запланировал
Мое предположение - пока писал подумал, что первые 4 байта зарезервированы QString для обозначения количества байт, чтобы обозначить длину строки и это какой-нибудь quint64 (long), ведь строка "привет" состоит из 12 байт, а 4 байт в данных QString, именно 0C. Не подскажете, что делать в данном случае?