我正在尝试加密/解密NSString并最终返回原始字符串。以下是将字符串转换为数据对象的方法:
NSData *string_data = [string dataUsingEncoding:NSUTF8StringEncoding];
在数据加密/解密之后,我想通过执行以下操作将其恢复为原始字符串:
NSString *to_string = [NSString stringWithCString:[decrypted_data bytes] encoding:NSUTF8StringEncoding];
编码似乎匹配,但当我尝试将to_string
打印到控制台时,我仍然得到null。我尝试了各种编码设置。它似乎不起作用。
答案 0 :(得分:1)
使用:
NSString *to_string = [[NSString alloc] initWithData:string_data encoding:NSUTF8StringEncoding];
使用stringWithCString
是不安全的,因为从NSData获得的bytes
缓冲区不能保证以空值终止。