我使用以下函数在PHP中压缩了一个String
...........................................
$compressedStr= gzcompress($txt, 9);
...........................................
并使用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 :(得分:0)
文档不清楚,但似乎InflaterInputStream
在nowrap
类中调用了Inflater
,因此它期待原始的deflate格式。 gzcompress()
提供zlib包装的deflate流。您可以直接使用Inflater
类,或者在PHP端使用gzdeflate()
。