Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>My C# code to compress is </p> <pre><code> private string Compress(string text) { byte[] buffer = Encoding.UTF8.GetBytes(text); MemoryStream ms = new MemoryStream(); using (GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true)) { zip.Write(buffer, 0, buffer.Length); } ms.Position = 0; MemoryStream outStream = new MemoryStream(); byte[] compressed = new byte[ms.Length]; ms.Read(compressed, 0, compressed.Length); byte[] gzBuffer = new byte[compressed.Length + 4]; System.Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length); System.Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4); return Convert.ToBase64String(gzBuffer); } </code></pre> <p>Java code to decompress the text is </p> <pre><code>private String Decompress(String compressedText) { byte[] compressed = compressedText.getBytes("UTF8"); compressed = org.apache.commons.codec.binary.Base64.decodeBase64(compressed); byte[] buffer=new byte[compressed.length-4]; buffer = copyForDecompression(compressed,buffer, 4, 0); final int BUFFER_SIZE = 32; ByteArrayInputStream is = new ByteArrayInputStream(buffer); GZIPInputStream gis = new GZIPInputStream(is, BUFFER_SIZE); StringBuilder string = new StringBuilder(); byte[] data = new byte[BUFFER_SIZE]; int bytesRead; while ((bytesRead = gis.read(data)) != -1) { string.append(new String(data, 0, bytesRead)); } gis.close(); is.close(); return string.toString(); } private byte[] copyForDecompression(byte[] b1,byte[] b2,int srcoffset,int dstoffset) { for(int i=0;i&lt;b2.length &amp;&amp; i&lt;b1.length;i++) { b2[i]=b1[i+4]; } return b2; } </code></pre> <p>This code works perfectly fine for me.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload