QByteArrayとStringがqtでどのように連携しているかを理解しようとしています。だから、メモリにQByteArrayを作成する以下のケースがあります。QStringからQByteArrayを取得する
QByteArray qba;
quint8 version = 1;
qba << version;
quint8 type = 122;
qba << type;
qDebug() << qba.length() << " " << QString(qba);
デバッグ文を印刷:だから
2 "\u0001z"
、私は2バイトのデータを持っているし、文字列表現を抽出します。
ここで私がしたいことは、文字列表現(生のC++ char配列として私に与えられている)から始まり、QByteArray
表現を作成することです。だから、次のように私は配列を作成します。
char msg[] = { '\\', 'u', '0', '0', '0', '1', 'z', '\0' };
QString testStr = QString::fromUtf8(msg);
QByteArray testRaw = testStr.toUtf8();
qDebug() << testRaw.length() << " " << QString(testRaw);
さて、これは印刷されます。
7 "\\u0001z"
は、私は、このような文字配列から開始し、バイト配列表現を得ることができるかどうかはわかりませんよ。 I私はQString
間のQt 5.9
に変換されたことを注意あなたの編集の直後に答えてください。今あなたの質問は正確ではないことがわかります。なぜこの変換が必要ですか? –
私はデータマトリックスイメージを解読するライブラリlibdmtxを使用しているので、この変換が必要です。デコーダは 'const char *'を返し、私は基本的にそれを解析するためにバイナリ表現を取得しようとしています。返される文字列はUTF-8であると推測していますが、わかりません。それらの文書は何も言いません。 現時点では、QByteArrayとconst char *の間で、エンコーディングを知っているので、私がどのように前後に行き来できるかを再現しようとしています。 – Luca