用于在NSString和NSData之间进行转换的编码

时间:2013-11-14 15:15:56

标签: ios objective-c encryption nsstring nsdata

我正在尝试加密/解密NSString并最终返回原始字符串。以下是将字符串转换为数据对象的方法:

NSData *string_data = [string dataUsingEncoding:NSUTF8StringEncoding];

在数据加密/解密之后,我想通过执行以下操作将其恢复为原始字符串:

NSString *to_string = [NSString stringWithCString:[decrypted_data bytes] encoding:NSUTF8StringEncoding];

编码似乎匹配,但当我尝试将to_string打印到控制台时,我仍然得到null。我尝试了各种编码设置。它似乎不起作用。

1 个答案:

答案 0 :(得分:1)

使用:

NSString *to_string = [[NSString alloc] initWithData:string_data encoding:NSUTF8StringEncoding];

使用stringWithCString是不安全的,因为从NSData获得的bytes缓冲区不能保证以空值终止。