182 votes

Décodage Base64 sous iOS 7+

J'ai du texte encodé ( NSString ) utilisant NSData Nouvelle classe API ajoutée dans iOS7.

en utilisant cette

 - (NSData *)dataUsingEncoding:(NSStringEncoding)encoding;  
 

voici mon code

 NSString *base64EncodedString = [[myText dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0];

NSLog(@"%@", base64EncodedString);
 

Je cherche à le décoder

435voto

Gabriele Petronella Points 32362

Objectif c

 NSString *plainString = @"foo";
 

Codage

 NSData *plainData = [plainString dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64String = [plainData base64EncodedStringWithOptions:0];
NSLog(@"%@", base64String); // Zm9v
 

Décodage

 NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
NSLog(@"%@", decodedString); // foo 
 

Rapide

 let plainString = "foo"
 

Codage

 let plainData = plainString.dataUsingEncoding(NSUTF8StringEncoding)
let base64String = plainData?.base64EncodedStringWithOptions(.allZeros)
println(base64String!) // Zm9v
 

Décodage

 let decodedData = NSData(base64EncodedString: base64String!, options: .allZeros)
let decodedString = NSString(data: decodedData, encoding: NSUTF8StringEncoding)
println(decodedString) // foo
 

81voto

Tommy Points 56749

Si vous souhaitez écrire un code de secours, le décodage à partir de base64 est présent dans iOS depuis le début, en indiquant en particulier NSURL :

 NSURL *URL = [NSURL URLWithString:
      [NSString stringWithFormat:@"data:application/octet-stream;base64,%@",
           base64String]];

return [NSData dataWithContentsOfURL:URL];
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X