objective-c – 将NSData字节数组转换为字符串?

我有一个NSData对象.我需要将其字节转换为字符串并作为 JSON发送.描述返回十六进制,不可靠(根据各种SO海报).所以我正在看这样的代码
NSUInteger len = [imageData length];
Byte *byteData = (Byte*)malloc(len);
[imageData getBytes:&byteData length:len];

如何发送byteData作为JSON?我想发送原始字节.

码:

Nsstring *jsonBase64 = [imageData base64EncodedString];
NSLog(@"BASE 64 FINGERPRINT: %@",jsonBase64);
NSData *b64 = [NSData dataFromBase64String:jsonBase64];
NSLog(@"Equal: %d",[imageData isEqualToData:b64]);
NSLog(@"b64: %@",b64);
NSLog(@"original: %@",imageData);
Nsstring *decoded = [[Nsstring alloc] initWithData:b64 encoding:NSUTF8StringEncoding];
NSLog(@"decoded: %@",decoded);

我得到除了最后一行之外的所有值 – 解码.
哪个会告诉我,NSUTF8encoding中原始字节没有格式化?

解决方法

>在以前的Stack文章中String被认为是“不可靠”的原因是因为它们也试图使用NSData对象,其中结束字节没有被正确终止为NULL:
Nsstring *jsonString = [Nsstring stringWithUTF8String:[nsDataObj bytes]];
// This is unreliable because it may result in NULL string values

>而下面的例子应该给你你想要的结果,因为NSData字节串将正确终止:

Nsstring *jsonString = [[Nsstring alloc]  initWithBytes:[nsDataObj bytes] length:[nsDataObj length] encoding: NSUTF8StringEncoding];

你在正确的轨道上,希望能够帮助您解决当前的问题.祝你好运!

〜EDIT〜

确保您从像这样的图像声明您的NSData对象:

NSData *imageData = [[NSData alloc] init];
imageData = UIImagePNGRepresentation(yourImage);

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...