Hey je suis en train d'obtenir le texte en ASCII, puis le stocker sur un serveur puis quand je le récupérer je veux décoder le texte à NSStringNSData de NSString comme il est
je l'ai utilisé la code suivant pour tester sur une application aléatoire .. mais ici j'ai NSdata comme une variable globale donc ça fonctionne bien ..
Question est comment puis-je obtenir la valeur NSString je reviens du serveur dans la variable NSData donc je peut le convertir en le texte que j'ai encodé.
.h
@interface passTestViewController : UIViewController
{
NSString *text;
NSData *d;
}
.m
- (IBAction)eButton:(id)sender {
text = [NSString stringWithFormat:@"%@%@%@",@"!",[_textField text],@"!"];
d=[[NSString stringWithFormat:@"%@",text] dataUsingEncoding:NSASCIIStringEncoding];
text = [NSString stringWithFormat:@"%@",d];
[_label setText:text];
}
- (IBAction)dButton:(id)sender {
NSString *dString = [[NSString alloc] initWithData:d encoding:NSASCIIStringEncoding];
dString = [dString stringByReplacingOccurrencesOfString:@"!" withString:@""];
[_label setText:dString];
}
je dois obtenir à NSData. je l'envoie à mon serveur à travers JSON, puis plus tard, quand je le récupérer ... je reçois comme une chaîne .. ce que je dois est
NSData *d = stringThatIGetBackFromJson;
afin que je puisse le convertir à travers
NSString *dString = [[NSString alloc] initWithData:d encoding:NSASCIIStringEncoding];
pour obtenir la chaîne originale entrée par l'utilisateur.
également la chaîne que je reçois de cela après encode a les signes et espaces .. « < » « > » et « » Il ne serait pas passer par l'url si ce que je faisais était supprimer les espaces et <> à travers
myString = [myString stringByReplacingOccurrencesOfString:@" " withString:@""];
myString = [myString stringByReplacingOccurrencesOfString:@"<" withString:@""];
myString = [myString stringByReplacingOccurrencesOfString:@">" withString:@""];
maintenant ce que je vais revenir va être juste des chiffres comme « 40786d61646f6f2131323334216b6d646f616f » ... est là de toute façon autour de cela? pour comparer je vérifie juste l'encodage du texte et suis les mêmes étapes, puis je compare if isEqualTo, mais je voudrais récupérer le texte pour être capable de poster sur l'application.
J'ai peur Vous êtes désespérément confus. Vous ne comprenez apparemment pas que "encoding" s'applique uniquement aux données 8 bits - une fois qu'une chaîne est dans un NSString, elle est en Unicode. Vous ne comprenez pas non plus que si vous videz (ou formatez avec '% @') un objet NSData, vous verrez hex, pas de données de caractères.Cela est vrai pour *** tout objet NSData ***. (L'hexagone ci-dessus est "@xmadoo! 1234! Kmdoao") –
Donc je peux juste utiliser un hex normal pour convertir le convertisseur pour le convertir en retour .. http://stackoverflow.com/questions/6421282/how-to- convertir-hex-à-nsstring-dans-objectif-c. et y at-il un moyen que je peux envoyer en tant que données ..? ou toute autre option pour le cryptage? Thnx et sry pour la réponse tardive .. –
Utiliser NSString initWithData ... Vous devriez utiliser le même encodage de chaîne que celui utilisé pour produire les données à l'origine, mais UTF8 devrait fonctionner dans presque tous les cas. –