Zlib Decompress

From SwiftAPI

Jump to: navigation, search

Contents

C

zlib.net

#include <string.h>
#include "zlib.h"
 
char compressed[] = "\x78\x5e\x73\x74\x44\x05\x00\x22\x98\x04\x11";
char data[50];
z_stream strm;
 
strm.zalloc = Z_NULL;
strm.zfree = Z_NULL;
strm.opaque = Z_NULL;
strm.avail_in = strlen(compressed);
strm.next_in = compressed;
strm.avail_out = sizeof(data);
strm.next_out = data;
 
inflateInit(&strm);
inflate(&strm, Z_NO_FLUSH);
inflateEnd(&strm);
 
/* data == "AAAAAAAAAAAAAAAA" */

Java

docs.oracle.com

import java.util.zip.Inflater;
 
byte[] compressedBytes = {(byte)0x78, (byte)0x5e, (byte)0x73,
                          (byte)0x74, (byte)0x44, (byte)0x05,
                          (byte)0x00, (byte)0x22, (byte)0x98,
                          (byte)0x04, (byte)0x11};
 
try {
    // Decompress the bytes
    Inflater decompresser = new Inflater();
    decompresser.setInput(compressedBytes);
    byte[] dataBytes = new byte[100];
    int resultLength = decompresser.inflate(dataBytes);
    decompresser.end();
    String data = new String(dataBytes, 0, resultLength);
    // data == "AAAAAAAAAAAAAAAA"
} catch (java.util.zip.DataFormatException e) {}

Perl

Compress::Zlib

perldoc

use Compress::Zlib;
$compressed = "\x78\x5e\x73\x74\x44\x05\x00\x22\x98\x04\x11";
$data = uncompress($compressed);
# $data == 'AAAAAAAAAAAAAAAA'

IO::Uncompress::Inflate

perldoc

use IO::Uncompress::Inflate qw(inflate $InflateError);
$compressed = "\x78\x5e\x73\x74\x44\x05\x00\x22\x98\x04\x11";
inflate(\$compressed => \$data)
  or die "inflate failed: $InflateError\n";
# $data == 'AAAAAAAAAAAAAAAA'

PHP

php.net

string gzuncompress( string $data [, int $length = 0 ] )
$compressed = "\x78\x5e\x73\x74\x44\x05\x00\x22\x98\x04\x11";
$data = gzuncompress($compressed);
// $data == 'AAAAAAAAAAAAAAAA'

Python

import zlib
 
compressed = '\x78\x5e\x73\x74\x44\x05\x00\x22\x98\x04\x11'
data = zlib.decompress(compressed)
# data == 'AAAAAAAAAAAAAAAA'

Ruby

ruby-doc.org

Zlib::Inflate.inflate(string)
require 'zlib'
 
compressed = "\x78\x5e\x73\x74\x44\x05\x00\x22\x98\x04\x11"
data = Zlib::Inflate.inflate(compressed)
# data == 'AAAAAAAAAAAAAAAA'
Personal tools