2012-05-02 64 views
1

我的問題是類似於此:gzencode PHP到目標C的NSData

iPhone and 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"); 

結果是 「壓縮程序錯誤」

回答

1

這按預期工作:

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

Wi th NSData+Base64NSData+Compression類別

+0

感謝,但我沒有運氣 – user1122069

+0

好吧,這應該工作 – sigman

+0

感謝,但它並沒有爲我上面K0ktLlFIzSspqlTQ09MDYTCloKcApWEEGBkaGZuYAAA =字符串工作。不幸的是,對於這個線程,我能夠使用bzip進行壓縮,而不再需要在此上花費時間。 儘管如此 – user1122069

0

我的情況是,我想解碼一個gzip文件。通過遵循@sigman的答案,我可以解碼gzip文件。
例如, NSString * gfile = [documentDirectory stringByAppendingPathComponent:@"randomgzip.c.gz"]; NSData * gdata = [[NSData alloc] initWithContentsOfFile:gfile]; NSData * flatData = [gdata gzipInflate];