Encodage des string sur une socket
Slt, j'ai créé un client Qt réseau en C++ et un serveur réseau en C#. (Le problème vient du coté client d'où le post dans la catégorie C++). Le problème c'est quand j'envoie une string sur la socket, j'ai beau l'encoder en Utf8 lors de l'écriture et lors de la lecture, dans les deux cas, ça me mets n'importe quoi dès qu'il y a des caractères spéciaux ! Quelqu'un saurait-il d'où cela pourrait-il venir ?
Voici mon code en C++ : (client)
Code:
1 2 3 4 5 6 7 8 9 10 11
|
QByteArray paquet;
QDataStream out(&paquet, QIODevice::WriteOnly);
QString messageAEnvoyer = "#$%éà";
QByteArray chaine = messageAEnvoyer.toUtf8 ();
out << qToBigEndian((quint64) chaine.size());
socket->write(paquet); // On envoie le paquet
socket->write(chaine); |
Serveur (C#) :
Code:
1 2 3 4 5 6 7
|
Encoding enc = Encoding.UTF8;
ulong Taille = BR.ReadUInt64();
string Str = enc.GetString(BR.ReadBytes((int)Taille));
Console.WriteLine(Str); |
Merci d'avance !