我面临 Gzip 解压缩的问题。
情况是这样的。我有一些 UTF-8 格式的文本。现在这个文本使用 PHP 中的 gzdeflate() 函数压缩,然后存储在 Mysql 中的 blob 对象中。
现在我尝试检索 blob 对象,然后使用 Java 的 Gzip Stream 解压缩它。但它会抛出一个错误,说它不是 GZIP 格式。
我什至在 Java 中使用 Inflater 来做同样的事情,但现在我得到“DataFormatException:不正确的标头检查”。充气机的代码如下。
//rs is the resultset
//blobAsBytes is the byte array
while(rs.next()){
blob = rs.getBlob("old_text");
int blobLength = (int) blob.length();
blobAsBytes = blob.getBytes(1, blobLength);
}
Inflater decompresser = new Inflater();
decompresser.setInput(blobAsBytes);
byte[] result = new byte[100];
int resultLength = decompresser.inflate(result); // this is the line where the exception is occurring.
decompresser.end();
// Decode the bytes into a String
String outputString = new String(result, 0, resultLength, "UTF-8");
System.out.println(outputString);
我必须使用 Java 执行此操作并获取存储在数据库中的所有文本。
有人可以帮我解决这个问题。