// 普通string
NSString *string = @"hello";
// 普通string -> 普通data
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
// 普通data -> 普通string
NSString *string_2 = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
// 普通data -> base64data
NSData *base64data = [data base64EncodedDataWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
// 普通data -> base64string
NSString *base64string = [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
// base64data -> 普通data
NSData *data_2 = [[NSData alloc] initWithBase64EncodedData:base64data options:NSDataBase64DecodingIgnoreUnknownCharacters];
// base64string -> 普通data
NSData *data_3 = [[NSData alloc] initWithBase64EncodedString:base64string options:NSDataBase64DecodingIgnoreUnknownCharacters];
NSDataBase64EncodingOptions
选项:
NSDataBase64Encoding64CharacterLineLength
:每64个字符插入\r
或\n
NSDataBase64Encoding76CharacterLineLength
:每76个字符插入\r
或\n
NSDataBase64EncodingEndLineWithCarriageReturn
:插入字符为\r
NSDataBase64EncodingEndLineWithLineFeed
:插入字符为\n
前两个选项为是否允许插入字符,以及多少个字符长度插入,两个可以选其一或者都不选。
后两个选项代表要插入的具体字符。比如我们想76个字符后插入一个 \r
则可以
NSDataBase64Encoding76CharacterLineLength | NSDataBase64EncodingEndLineWithCarriageReturn