Qt C++ QString à QByteArray de Conversion
J'ai créé un crypter/décrypter un programme, lors du chiffrement-je stocker les crypté QByteArray dans un fichier texte.
En essayant de déchiffrer j'ai récupéré, et puis de le mettre dans la méthode de déchiffrement, le problème est que j'ai besoin d'un moyen de le convertir en QByteArray sans en changer le format, sinon elle ne pourra pas déchiffrer correctement. Ce que je veux dire c'est que si le fichier m'a donné une valeur chiffrée de 1234 et je me suis converti que pour QByteArray en allant 1234.toLatin1()
il modifie la valeur et le déchiffrement ne fonctionne pas. Des suggestions?
Mon Code:
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;
Comment avez-vous écrire QByteArray dans le fichier texte?Utilisation QTextStream ou simplement l'utiliser QFile::write?
QTextStream
QTextStream
OriginalL'auteur James | 2016-06-14
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous devez utiliser:
Ou:
pour convertir QByteArray à QString, puis l'écrire dans le fichier en QTextStream.
Après cela, lire le fichier par QTextStream, utilisation:
pour convertir QString à QByteArray.
P. S:
Peut-être utiliser QFile::write et QFile::lire est une meilleure façon.
OriginalL'auteur Daniel
essayez d'utiliser toLocal8Bit() .. il fonctionne très bien avec moi
OriginalL'auteur Ahmed Yossef
Si je comprends bien, le texte à partir du fichier est conservé dans le QString contenu. Je pense que vous pourriez créer un nouveau QByteArray. Parce que le constructeur d'un QByteArray ne permet pas un QString en entrée, je vais probablement avoir à ajouter le QString vide QByteArray.
Je n'ai pas beaucoup d'expérience dans la bibliothèque Qt, mais j'espère que cette aide.
?\x01?YJ?l?p3&?\x11\x1Bv/?X??c?U?~{?a??
et il devrait être?\u0001?YJ?l?p3&?\u0011\u001Bv/?X??c?U?~{?a??
Pourquoi la valeur d'être en train de changer? depuis que j'ai utilisé qDebug() etcontent
avant la création de laQByteArray
est la valeur correcteJ'ai édité mon post et ajouté ma fonction entière si ça aide
Aucune idée de pourquoi cela a downvotes, c'est très bien.
OriginalL'auteur Ritoban Roy Chowdhury