Non, tu n'avais jamais répondu à cela, autrement, nous n'aurions pas insisté pour que tu nous le dise
Maintenant, nous allons pouvoir t'aider
[..]
Bon, maintenant, nous pouvons te proposer une solution.
La première chose à faire, c'est bien de récupérer ce que le serveur envoie sous la forme de
unsigned char non pas dans un unsigned char * mais dans un
std::vector< unsigned char>.
Tu n'auras alors même plus à t'inquiéter de la conversion, parce que ce que tu obtiens est déjà... un tableau de byte!
Et cela t'évitera un tas de problème du fait des caractères non affichables (parce que tu ne considère pas ce que tu obtiens comme l'index de la table ASCII mais bien comme... une valeur numérique de petite taille).
Tous tes problèmes viennent de là!
Comme je te l'ai dit plus haut '1' ne vaut pas 1 !!!
1 en tant que valeur (en tant qu'index dans la table ASCI) est est caractère non affichable SOH (Start Of Header) alors que '1' en tant que représentation graphique se trouve en réalité à l'index... 49 (décimal) ou, en hexadécimal 0x31.
Si j'insiste là dessus, c'est parce qu'il est important que tu comprennes la différence.
Pour faire un parallèle, '1' sera ce que tu lira en ouvrant un fichier texte avec notepad (ou autre) alors que 1 sera ce que tu obtiens en lisant un fichier binaire.
Ici, ce que tu obtiens, c'est un flux équivalent à un fichier binaire, tu ne peux donc pas le gérer comme si c'était du texte!
Partager