Je pose cette question principalement parce que j'ai cherché sur ce site des solutions possibles et aucune n'a fonctionné comme je l'espérais.Convertir une chaîne hexadécimale en un caractère non signé []
Je voudrais effectuer la conversion de cette chaîne hexadécimale en un caractère non signé [].
NSString *text = @"0043600001";
dans unsigned char dataSmall[] = {0x00, 0x43, 0x60, 0x00, 0x01}
J'ai besoin de la représentation hexadécimale 0x ## parce que je vous envoie un hôte qui accepte les messages en hexadecimal format
seulement. Ai-je raison de dire, moi aussi j'ai besoin de NSScanner
pour effectuer ces étapes pour séparer 2 caractères? Vraiment perdu et confus sur ce que je dois faire.
Ce sont les étapes pour se connecter et envoyer le message hexadécimal à l'hôte:
unsigned char dataSmall[] = {0x00, 0x43, 0x60, 0x00, 0x01}
NSData *data = [NSData dataWithBytes:dataSmall length:sizeof(dataSmall)];
PS, je ne sais pas la partie NSData
, mais il semble fonctionner lorsque j'utilise cette ligne NSData à envoyer messages hexadécimaux à l'hôte. Donc je le laisse tel quel. Actuellement, dataSmall[]
est codé en dur et j'aimerais savoir comment le gérer dynamiquement. Apprécierait toutes les aides ici.
EDIT 1 Ah, j'ai manqué une information importante. Les données hexadécimales sont un message ISO8583
lui-même. Pouvez-vous expliquer d'où vient la chaîne hexagonale?
Il semble très étrange que vous ayez un tas de données hexadécimales en guise de chaîne. – rmaddy
C'est un peu déroutant pour moi au début, alors je suis désolé si je ne vous donne pas les réponses que vous cherchez. Pour l'instant, ce serait à partir de 'TextField'. Mais je dois encore faire quelque chose à ce sujet, comme la conversion de chaînes ASCII en données hexadécimales. Et oui, ce serait bizarre de convertir des chaînes hexadécimales en données hexadécimales. –
Si vous voulez convertir du texte en 'NSData' que vous pouvez envoyer à un serveur, il suffit d'obtenir le' NSData' comme ceci: 'NSData * textData = [someTextField.text dataUsingEncoding: NSUTF8StringEncoding];'. C'est tout. Vous avez maintenant les octets du texte codés en UTF-8 et prêts à être envoyés au serveur. Le serveur peut maintenant utiliser ces données pour recréer la chaîne UTF-8. Il n'y a pas besoin de toute cette conversion hexadécimale. – rmaddy