objective-c – 将NSData字节数组转换为字符串?
发布时间:2020-12-16 05:38:04 所属栏目:百科 来源:网络整理
导读:我有一个NSData对象.我需要将其字节转换为字符串并作为 JSON发送.描述返回十六进制,不可靠(根据各种SO海报).所以我正在看这样的代码: NSUInteger len = [imageData length];Byte *byteData = (Byte*)malloc(len);[imageData getBytes:byteData length:len];
我有一个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); 我得到除了最后一行之外的所有值 – 解码. 解决方法
>在以前的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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |