【发布时间】:2021-10-28 05:07:12
【问题描述】:
我有一些代码可以解压缩 gzip 压缩字符串,如下所示:
public static String decompress(String compressedString) throws IOException {
byte[] byteCompressed = compressedString.getBytes(StandardCharsets.UTF_8)
final StringBuilder outStr = new StringBuilder();
if ((byteCompressed == null) || (byteCompressed.length == 0)) {
return "";
}
if (isCompressed(byteCompressed)) {
final GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(byteCompressed));
final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(gis, "UTF-8"));
String line;
while ((line = bufferedReader.readLine()) != null) {
outStr.append(line);
}
} else {
outStr.append(byteCompressed);
}
return outStr.toString();
}
public static boolean isCompressed(final byte[] compressed) {
return (compressed[0] == (byte) (GZIPInputStream.GZIP_MAGIC)) && (compressed[1] == (byte) (GZIPInputStream.GZIP_MAGIC >> 8));
}
我使用此代码解压缩字符串,如下所示: H4sIAAAAAAAAAAHNJLQtJLS4BALwLiloHAAAA
但是这段代码解压了一个意外的字符串,虽然我可以在网上正常解压
谁能帮我提供正确的解压缩代码?谢谢
【问题讨论】: