Bonjour,
J'utilise une QTcpSocket pour interroger un serveur de messagerie.
Ce dernier m'envoie une réponse sur ma socket et lui indique l'auteur du mail.
Cette réponse est stockée dans un QByteArray comme suit :
Jusque là, ca fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // socket_r : ma socket qui transporte le message // data : mon QByteArray qui stocke l'auteur du mail socket_r->readLine(data.data(), data.size());
J'affiche alors l'auter du message dans la console :
Ce qui me produit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::cout << "Réponse du serveur : \t" << data.constData() << std::endl;
Mon problème se situe donc au niveau de l'encodage, et je ne parviens pas à le résoudre (C'est un problème récurrent dans mes projets
Code : Sélectionner tout - Visualiser dans une fenêtre à part =?iso-8859-1?Q?R=E9gis?= <reg@reg.fr>).
J'obtiens "R=E9gis" au lieu de "Régis", dans le cas présent...
J'ai essayé de travailler sur cet encodage en utilisant le passage au Latin1, mais sans succès :
J'avoue que je ne sais pas trop comment gérer le chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::cout << "Réponse du serveur : \t" << QString::fromLatin1(data.constData()).toStdString() << std::endl;
Auriez-vous une idée ?
Merci![]()
Partager