2016-08-27 37 views
0

壓縮的我已經使用下面的函數減壓在Andriod的工作不被使用PHP

 ........................................... 
     $compressedStr= gzcompress($txt, 9); 
     ........................................... 

壓縮PHP中的字符串和發送使用QR碼到Android壓縮的結果。在android中,接收到的字符串在android中使用以下函數進行了壓縮,但這不起作用。什麼是在php中壓縮字符串然後在android中解壓縮的最佳方式?

public static String DecompressString(String inputStr) throws Exception { 

    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    DeflaterOutputStream dos = new DeflaterOutputStream(baos); 
    dos.write(inputStr.getBytes()); 
    dos.flush(); 
    dos.close(); 
    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); 
    InflaterInputStream iis = new InflaterInputStream(bais); 

    String result = ""; 
    byte[] buf = new byte[5]; 
    int rlen = -1; 
    while ((rlen = iis.read(buf)) != -1) { 
     result += new String(Arrays.copyOf(buf, rlen)); 
    } 

     return result; 
} 

回答

0

的文檔不清晰,但似乎InflaterInputStream調用在Inflaternowrap,所以它期待的原始deflate格式。 gzcompress()提供了一個zlib包裹的deflate流。您可以直接使用Inflater類,或者在PHP端使用gzdeflate()