1 NSString * sourceString = @"test"; 2 3 NSString *base64String = [[sourceString dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; 4 5 // 大概是这个样子的 6 // NSData * strData = [sourceString dataUsingEncoding:NSUTF8StringEncoding]; 7 // NSString * base64StringT = [strData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]; 8 9 10 NSLog(@"%@",base64String); 11 12 13 NSString * restoreString = [[NSString alloc]initWithData:[[NSData alloc] initWithBase64EncodedString:base64String options:NSDataBase64DecodingIgnoreUnknownCharacters] encoding:NSUTF8StringEncoding]; 14 // 大概是这个样子的 15 // NSData * baseStrData = [[NSData alloc] initWithBase64EncodedString:base64String options:NSDataBase64DecodingIgnoreUnknownCharacters]; 16 // NSString * restoreStringT = [[NSString alloc]initWithData:baseStrData encoding:NSUTF8StringEncoding]; 17 18 NSLog(@"%@",restoreString);
上面代码中有两个参数“Options”,一个是EnCode,一个是DeCode,其中DeCode就一个可选,EnCode有4个,选择哪一个都行,目前我发现,各个参数仅是打印出来后的样式不一样,内容一样,应该是为了方便打印debug而设置的(个人猜测,很可能不对)。
Base64原理这里粗略的讲一下,表格不太好弄,我就直接图片了,加一个文档下载地址:点我下载文档