将base64解码的NSData转换为NSString

hab*_*hab 4 objective-c nsstring nsdata ios

我正在尝试编码和解码base64数据.但是在解码base64数据时,它会返回一组十六进制值,但我无法使用NSlog显示或打​​印输出到原始可读字符串.下面的代码无法打印任何内容,只是空的.

有人可以帮忙吗?谢谢>>

NSString* msgEncoded = [[NSString alloc] initWithFormat:@"Q1NNKE1DTC9TTUEgUkNWL2FkbWluQHNldGVjcy5jb20gT1JHLyBUVkIvNDNkYzNlMzQwYWQ3Yzkp:"];  
NSData* decoded = [[NSData alloc] initWithData:[self decodeBase64WithString:msgEncoded]];
NSString* plainString = [[NSString alloc]initWithData:decoded encoding:NSUTF8StringEncoding];
NSLog(@"\n Decoded string:  %@ \n", plainString );
Run Code Online (Sandbox Code Playgroud)

Nag*_*raj 8

NSData中有一个内置函数

[data base64Encoding];
[data base64EncodedStringWithOptions:NSDataBase64Encoding76CharacterLineLength];
Run Code Online (Sandbox Code Playgroud)


Coc*_*aEv 5

如果您仍有问题,请试用此库:https: //github.com/l4u/NSData-Base64

像这样使用它:

#import "NSData+Base64.h"

NSData *someData  //load your data from a file, url or photo as needed
NSData *file = [NSData dataWithContentsOfFile:@"mytextfile.txt"];
NSData *photo = UIImageJPEGRepresentation(self.photo.image,1);

//encode it
NSString *base64string = [photo base64EncodedString];
NSString *base64file = [file base64EncodedString];

//decode it
NSData *back = [NSData dataFromBase64String:base64string];
Run Code Online (Sandbox Code Playgroud)