Comment convertir un NSString
à la valeur NSData
?
Réponses
Trop de publicités?Convertir NSString
comme ceci forcera un \0
octet, ce qui signifie NSJSONSerialization:JSONObjectWithData
et d'autres échoueront si vous ne l'enlevez pas.
C'est-à-dire qu'il faut
NSData* data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
et ensuite
data = [data subdataWithRange:NSMakeRange(0, [data length] - 1)];
alors n'hésitez pas à poursuivre avec NSJSONSerialization:JSONObjectWithData
.
Tout d'abord, vous devez utiliser dataUsingEncoding:
au lieu de passer par UTF8String
. Vous utilisez uniquement UTF8String
lorsque vous avez besoin d'un C
dans cet encodage.
Ensuite, pour UTF-16
, passe juste NSUnicodeStringEncoding
au lieu de NSUTF8StringEncoding
dans votre dataUsingEncoding:
message.
Il semble que quelqu'un ait créé un poste à ce sujet :
Conversion de NSString en NSData et inversement.
http://ios-blog.co.uk/tutorials/quick-tips/quick-tip-converting-nsstring-to-nsdata/