2016-12-26 3 views
0

Je reçois quelque chose comme ça dans NSData et je veux l'imprimer comme NSString Data, donc je peux obtenir quelques solutions pour cela.Convertir l'objet NSData au format NSString

Mes données est

(< 30820605 308204ed a0030201 02021011 b5aff6d9 6c725e0d 33105e6c 6115a930 0d06092a 864886f7 0d01010b 05003044 310b3009 06035504 06130255 53311630 14060355 040a130d 47656f54 72757374 20496e63 2e311d30 1b060355 04031314 47656f54 72757374 2053534c 20434120 2d204733 301e170d 31363032 30333030 30303030 5a170d31 37303230 32323335 3935395a 30818431 0b300906 03550406 1302494e 3110300e 06035504 08130748 61727961 6e613110 300e0603 55040714 07477572 67616f6e 31243022 06035504 0a141b50 726f7469 6e757320 496e666f 74656368 20507674 2e204c74 642e3115 30130603 55040b14 0c50726f 64756374 20546561 6d311430 12060355 0403140b 2a2e7472 75706179 2e696e30 82012230 0d06092a 864886f7 0d010101 05000382 010f0030 82010a02 82010100 b561a9fa 80f7e7f7 c9e64b02 05259a84 c73682d6 b3feee24 cbf04511 18667669 52f62331 a1056106 595b22fb db63cc4b c700e90f 0a1d24cb ea8f253c 3d7c8a57 5abd8f86 62c4e866 bbd0ace9 2c2eef5a 30046e48 a83d374b ef8f8170 cfa703d3 0099ff45 559031f8 53e8a67d af6552c2 4ff628c3 9979e3e0 62a5cc9a d73cb5fa a3ef6a45)

Ces mêmes données que je veux en format de chaîne.

J'utilise ce morceau de code

NSString *myString = [NSString stringWithUTF8String:[remoteCertificateData bytes]]; 

Mais je reçois nul pour myString.

+1

double possible de [Convertir UTF-8 codé NSData à NSString] (http://stackoverflow.com/questions/2467844/convert- utf-8-encoded-nsdata-to-nsstring) –

+0

Donc, vous voulez une chaîne de nsdata? – KAR

+0

Pourquoi vous voulez convertir en chaîne pour la comparaison? – vp2698

Répondre

0

Vous pouvez utiliser,

NSString* newStr = [[NSString alloc] initWithData:theData 
             encoding:NSUTF8StringEncoding]; 

Si les données sont à zéro terminal, vous devriez plutôt utiliser

NSString* newStr = [NSString stringWithUTF8String:[theData bytes]]; 

Si NSData n'est pas UTF-8 codé, vous obtiendrez nulle.

pour référence ultérieure voir ces liens:

s'il vous plaît avoir regarder à ce sujet.

NSData bytes to string

0

Vous n'avez pas besoin de faire correspondre string. Il suffit de convertir la chaîne en NSData comme:

NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding]; 

puis comparer NSData.

0

Vous pouvez utiliser suivant Code Snippet pour convertir NSData en NSString:

NSString* str = [[NSString alloc] initWithData:aNSData encoding:NSUTF8StringEncoding];