在stackoverflow问了没人鸟我。。。
How to use zlib gzip a string in nodejs?
The result is difference between using GZIPOutputStream in java and using zlib.gzipSync() in nodejs zlib module;
the js code :
var endata = zlib.gzipSync(stringData);
the java code :
public static byte[] gzipData(String data) throws Exception {
byte[] b = null;
if (!StringUtils.isEmpty(data)) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(bos);
gzip.write(data.getBytes());
gzip.finish();
gzip.close();
b = bos.toByteArray();
bos.close();
}
return b;
}
gzip是一種檔案編碼格式,包括檔案頭和檔案正文,正文部分使用deflate演算法來運算,這個演算法在運算的時候可以指定壓縮級別,預設層級應該是6(如果我沒記錯的話)。 node的zlib底層是呼叫的c的zlib函式庫,deflate演算法在運算的時候還有其他參數可以調整,但是node裡面的文檔說的很簡單,所以說看c的文檔會了解的更詳細些。
再者,你這裡用的java是什麼類別庫,最好http://www.zlib.net/ 中給出的http://www.jcraft.com/jzlib/ 實作。