繁体   English   中英

转换Base64 GZipped字符串Objective-c或Swift

[英]Convert Base64 GZipped string Objective-c or Swift

我从这样的Web服务接收到一个字符串:

CAAAAB+LCAAAAAAABADtvQdgHEmWJSYvbcp7f0r1StfgdKEIgGATJNiQQBDswYjN5pLsHWlHIymrKoHKZVZlXWYWQMztnbz33nvvvffee++997o7nU4n99//P1xmZAFs9s5K2smeIYCqyB8/fnwfPyJOp/PqTf6u/X8A1v85+wgAAAA=

源字符串是“ EchoText ”,已使用Gzip压缩,然后转换为Base64

我必须首先解码Base64字符串,然后使用Gzip Unzip该字符串。

我该如何在Swift (或Objective-C )中进行操作?


编辑:

我找到了一个使用Gzip的很好的库: nicklockwood / Gzip

这是我的代码:

    NSString* base64String = @"CAAAAB+LCAAAAAAABADtvQdgHEmWJSYvbcp7f0r1StfgdKEIgGATJNiQQBDswYjN5pLsHWlHIymrKoHKZVZlXWYWQMztnbz33nvvvffee++997o7nU4n99//P1xmZAFs9s5K2smeIYCqyB8/fnwfPyJOp/PqTf6u/X8A1v85+wgAAAA=";

NSData* compressedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];

NSData* unCompressedData = [compressedData gunzippedData];

NSString *result = [[NSString alloc] initWithData:unCompressedData encoding:NSUTF8StringEncoding];

但结果是零。

这里的答案涵盖了Base64。

zlib可作为Mac OS X和iOS上的共享库直接使用。 它可以解压缩gzip流。

请注意,在进入gzip流之前,必须删除示例的前四个字节。 它们似乎包含小尾数形式的未压缩数据的大小。 (在您的示例中为08 00 00 00

暂无
暂无

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

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