Gzip 압축 해제 문제가 있습니다.Gzip 형식의 압축을 해제 하시겠습니까?
상황은 이와 같습니다. UTF-8 형식의 텍스트가 있습니다. 이제이 텍스트는 PHP에서 gzdeflate() 함수를 사용하여 압축 된 다음 Mysql의 blob 객체에 저장됩니다.
이제 blob 객체를 가져 와서 Java의 Gzip Stream을 사용하여 압축을 해제했습니다. 그러나 GZIP 형식이 아니라는 오류가 발생합니다.
심지어 자바에서 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를 사용하여이 작업을 수행하고 데이터베이스에 저장된 모든 텍스트를 다시 가져와야합니다.
누군가 나를 도와주세요.
좋아,하지만 여기에 나는 이미 gzdeflate() 함수를 사용하여 압축 된 데이터를 가지고 있으며 데이터베이스에 저장되어있다. –
좋아, 흥미 롭지 만 여기서 데이터는 이미 gzdeflate() 함수를 사용하여 압축되어 있고 데이터베이스에 저장되어있다. 내 요구 사항은 이미 저장된 데이터를 얻는 것입니다. 나는 PHP의 gzinflate() 함수를 사용해 보았지만 정상적으로 작동하지만 Java에 관해서는 모두 데이터를 검색하지 못했습니다. –
확장 된 대답을 참조하십시오. –