[解決済み] Qt C++のQStringからQByteArrayへの変換機能
2022-02-18 21:09:10
質問
暗号化/復号化プログラムを作成し、暗号化時に暗号化されたQByteArrayをテキストファイルに保存しています。
復号化するときに、それを取り出して復号化メソッドに入れました。問題は、それをQByteArrayに変換する方法が必要なことです。
形式を変えずに
でないと、うまく復号化できません。つまり、ファイルから1234という暗号化された値が得られたとして、それをQByteArrayに変換するために、次のようにします。
1234.toLatin1()
というメッセージが表示され、値が変わってしまい、復号化できません。何か提案はありますか?
私のコード
QFile file(filename);
QString encrypted;
QString content;
if (file.open(QIODevice::ReadOnly)) {
QTextStream stream( &file );
content = stream.readAll();
}
encrypted = content.replace("\n", "");
qDebug() << encrypted; // Returns correct encrypted value
QByteArray a;
a += encrypted;
qDebug() << "2 " + a; // Returns different value than previous qDebug()
QByteArray decrypted = crypto.Decrypt(a, key);
return decrypted;
解決方法は?
を使えばいいんだろうけど。
QString::fromUtf8(const QByteArray &str)
または
QString::QString(const QByteArray &ba)
を使用して、QByteArray を QString に変換し、QTextStream でファイルに書き込んでいます。
その後、QTextStreamでファイルを読み込んで使用します。
QString::toUtf8()
を使用して、QString を QByteArray に変換します。
QString::QString(const QByteArray &ba)
バイト配列baで初期化された文字列を構築します。与えられたバイト配列は、Unicodeに変換されます。 fromUtf8()を使用します。 .
追伸
QFile::writeとQFile::readを使うのが良い方法かもしれません。
関連
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] intをQStringに変換する方法は?
-
[解決済み] QStringをstd::stringに変換する方法は?
-
[解決済み] QStringからchar*への変換
-
[解決済み] 文字列をQStringに変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】Enterキーを押して続行する
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】変数やフィールドがvoid宣言されている