是否可以将 NSString 转换为 NSData?
is it possible to Convert NSString to NSData?
我已经将 NSData 转换为 NSString,现在我想将 NSString 转换回 NSData。
这是我将 NSData 转换为字符串的地方
NSData *actualData = [[NSMutableData alloc] initWithData:msgdata];
NSLog(@"Actual data Before converted to a string: %@", actualData);
NSString *test = [[NSString alloc] initWithFormat:@"%@", actualData];
是否可以将 NSString 恢复为 NSData 格式?
已编辑:
编码我的 NSData 变量的代码:
NSMutableData *actualData = [[NSMutableData alloc] initWithData:msgdata];
NSLog(@"Actual data Before converted to a string: %@", actualData);
NSString *test = [[NSString alloc] initWithFormat:@"%@", actualData];
NSLog(@"Pre encoded data: %@", test);
NSData *plainData = [test dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Mid encoded data variable: %@", plainData);
NSString *base64String = [plainData base64EncodedStringWithOptions:0];
解码代码:
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
NSLog(@"check the decoded data: %@", decodedData);
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
NSLog(@"Decoded String Afterwards: %@", decodedString);
我可以更进一步,让它恢复到原来的实际数据值吗??
有两种方法可以将 Data
转换为 String
,反之亦然。
– 如果 data 表示可读字符串,使用 NSString 的 initWithData:encoding:
和 dataUsingEncoding:
。两者的 encoding
值必须匹配。
– 如果 data 表示原始数据(例如图像)使用 NSData 的 base64EncodedStringWithOptions:
和 initWithBase64EncodedString:options:
.
但永远不要使用 NSString 的 initWithFormat
并传递 NSData
对象。那是没有意义的。
我已经将 NSData 转换为 NSString,现在我想将 NSString 转换回 NSData。
这是我将 NSData 转换为字符串的地方
NSData *actualData = [[NSMutableData alloc] initWithData:msgdata];
NSLog(@"Actual data Before converted to a string: %@", actualData);
NSString *test = [[NSString alloc] initWithFormat:@"%@", actualData];
是否可以将 NSString 恢复为 NSData 格式?
已编辑:
编码我的 NSData 变量的代码:
NSMutableData *actualData = [[NSMutableData alloc] initWithData:msgdata];
NSLog(@"Actual data Before converted to a string: %@", actualData);
NSString *test = [[NSString alloc] initWithFormat:@"%@", actualData];
NSLog(@"Pre encoded data: %@", test);
NSData *plainData = [test dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"Mid encoded data variable: %@", plainData);
NSString *base64String = [plainData base64EncodedStringWithOptions:0];
解码代码:
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
NSLog(@"check the decoded data: %@", decodedData);
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
NSLog(@"Decoded String Afterwards: %@", decodedString);
我可以更进一步,让它恢复到原来的实际数据值吗??
有两种方法可以将 Data
转换为 String
,反之亦然。
– 如果 data 表示可读字符串,使用 NSString 的 initWithData:encoding:
和 dataUsingEncoding:
。两者的 encoding
值必须匹配。
– 如果 data 表示原始数据(例如图像)使用 NSData 的 base64EncodedStringWithOptions:
和 initWithBase64EncodedString:options:
.
但永远不要使用 NSString 的 initWithFormat
并传递 NSData
对象。那是没有意义的。