1

我发现这种方法可以将 NSData 转换为 NSString 对象。

NSData *data = //some data
NSString *string = [NSString stringWithFormat:@"%@", data];

数据将如何被解码?应用了吗NSUTF8StringEncoding

谢谢!

4

3 回答 3

7

不是推荐的方法。而是使用:

NSString *newString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

这将确保您具有指定的数据编码。

于 2012-10-31T20:06:17.757 回答
4

在这种情况下,该stringWithFormat:方法将向NSData对象发送description消息,获取结果,并将其用于新创建的字符串的内容。本质上,结果与

NSString *string = [data description];

根据NSData的 文件,description返回

一个 NSString 对象,它以 NSData 属性列表格式包含接收者内容的十六进制表示。

于 2012-10-31T20:05:33.790 回答
0

你可能应该使用NSString *string = [[NSString alloc] initWithData: data encoding:SomeFormOfEncoding];

您可以在此处查看方法详细信息。

编码的形式可以在这里看到。

于 2012-10-31T20:10:30.260 回答