convert base64 decoded NSData to NSString

烂漫一生 提交于 2019-12-05 13:30:19

There is a built in function in NSData

[data base64Encoding];
[data base64EncodedStringWithOptions:NSDataBase64Encoding76CharacterLineLength];

If you are still having issues, try out this library: https://github.com/l4u/NSData-Base64

use it like so:

#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];

Try Google's GTMStringEncoding class. You'll need GTMDefines.h too.

GTMStringEncoding *coder = [GTMStringEncoding rfc4648Base64StringEncoding];
NSString *encodedBase64 = [coder encodeString:@"Mary had a little lamb"];

// will contain the original text
NSString *decodedText = [coder decodeString:encodedBase64];

To encode NSData* to NSString* and back to NSData*, use the encode: + decode: methods instead of encodeString: + decodeString:.

As a bonus you get a lot of additional useful encodings, such as the url-safe variant of Base64.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!