Ces jours-ci, je suis confronté à un problème avec la chaîne de codage d'un tableau d'octets. J'utilise une socket pour recevoir les données du serveur vers un tampon, puis je crée un MemoryStream
pour lire les données de ce tampon dans un tempBuffer avec une longueur fixe de 30 à plus tard GetString
de tempBuffer.Encoding.UTF8.GetString ne fonctionne pas correctement avec les données reçues du socket
byte tempBuff = new byte[30];
streamReader.Read(tempBuff, 0, 30);
string moTaSkill = Encoding.UTF8.GetString(tempBuff);
Le J'utilise une zone de texte pour afficher cette chaîne comme ci-dessous:
tbSkill.Text = moTaSkill;
Il affichent toujours tort sur la zone de texte:
- Quand debug je vois moTaSkill = « CompéteNCes de le héros "
- Lorsque l'affichage sur le textBox il suffit de" Compétence de "ou parfois" Compétence "ou" Compétence de la "
J'ai essayé de créer le tempBuffer avec la longueur égale à la longueur de la chaîne que je recevrai. Mais pas de succès.
Quelqu'un peut-il me dire une solution pour le réparer?
Merci à tous pour votre aide, la raison est un caractère nul à la fin de la chaîne. J'ai fait quelque chose quand copier des données dans le tampon. – lemycanh