1

私の質問はここに似ています:

iPhoneとGZip

ただ、結果は出ません。

PHPでデータをgzip圧縮しました。

$gztext = gzcompress($text,9);
var_dump(base64_encode($gztext));

そしてiOSでデコードしようとしました:

NSString *encodedGzippedString = @"K0ktLlFIzSspqlTQ09MDYTCloKcApWEEGBkaGZuYAAA=";
NSData *decodedGzippedData     = [NSData dataByBase64DecodingString:encodedGzippedString];
NSData *unGzippedJsonData = [decodedGzippedData gzipInflate];
if(unGzippedJsonData){
    NSString* unGzippedJsonString  = [[NSString alloc] initWithData:unGzippedJsonData encoding:NSASCIIStringEncoding];       
    if(unGzippedJsonString)
         NSLog(@"Result: %@", unGzippedJsonString);
    else
       NSLog(@"string error");
}
else NSLog(@"gzip error");

結果は「gzipエラー」です

4

2 に答える 2

1

これは期待どおりに機能します。

NSString* base64Str = @"eJwrSS0uUShJrQARxSUAKVwFhg==";
NSData* gzData = [NSData dataFromBase64String:base64Str];
NSData* flatData = [gzData gzipInflate];
NSString* result = [NSString stringWithUTF8String:(const char*) flatData.bytes];

NSData +Base64およびNSData+Compressionカテゴリを使用

于 2012-05-02T02:05:16.747 に答える
0

私の状況は、gzip ファイルをデコードしたいということです。@sigman の回答に従うことで、gzip ファイルをデコードできます。
例えば、 NSString * gfile = [documentDirectory stringByAppendingPathComponent:@"randomgzip.c.gz"]; NSData * gdata = [[NSData alloc] initWithContentsOfFile:gfile]; NSData * flatData = [gdata gzipInflate];

于 2014-12-17T04:09:32.393 に答える