繁体   English   中英

将Base64字符串转换为NSData,然后进行Gunzip

[英]Base64 string to NSData then gunzip

我有一个二进制的base64编码的NSString,我使用@mattt的Godzippa类将其转换为NSData对象,我试图对nsdata进行压缩,但出现错误:

Error Domain=com.godzippa.zlib.error Code=-3 "Error inflating payload" UserInfo=0x881b0b0 {NSLocalizedDescription=Error inflating payload}

当我进一步调查zStream.msgmsg = 0x000164de "incorrect header check"

但是我很难理解不正确的标头检查的含义以及如何解决此问题。 由于缺乏细节,我会事先提出要求,如果有人可以引导我了解这里的问题,我会及时回答任何问题。

这是我的操作方式,但是我删除了base64字符串:

NSString *dataString = @"REMOVED BASE64 STRING HERE";

NSData *data = [NSData dataFromBase64String:dataString];

NSError *error = nil;

NSData *decompressed = [data dataByGZipDecompressingDataWithError:&error];

if(error){
    NSLog(@"Error: %@", error);
}

我有一些代码完全可以满足您的需求(gunzip不能解压缩)。 您可以在GitHub上源在这里和我的博客上一行行的描述在这里

原来,当我需要解压缩gzip文件时,我试图解压缩zlib存档。 具体来说,我必须在libz / gzip库中将inflateInit()更改为inflatateInit2()方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM