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)
Serveur (C#) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Merci d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Partager