在Java中的GZIP压缩差异和GO
使用Java和Go中的GZIP进行压缩数据时,用户可能会遇到不同的结果。本文调查了基本原因并提供解决方案以实现相似的输出。 即使通过字节值调整,不同的结果也可能会由于这些语言之间的默认压缩级别的变化而持续存在。虽然Java和Go均最初都使用6级压缩,但该值并未标准化,实现可能会偏离。
Huffman Coding和lz77
消除输出差异输出,用户可以将压缩级别设置为Java和GO中的0(无压缩)。在Java中,可以通过设置Def.SetLevel(deflater.no_compression)来实现这一点,而在GO中,它涉及使用gzip.newwriterlevel(&buf,gzip.nocompression)。 ] 以无符号格式显示Java字节值,用户可以使用ByteValue&0xff。另外,在十六进制形式中显示值避免了有关签名的关注。附加考虑[&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&gzip允许将标题字段包含在其输出中。 Go通过GZIP.HEADER类型合并这些字段,而Java则省略了这些字段。为了生成精确的输出,用户可以为Java使用第三方GZIP库,以启用标头字段操作,例如Apache Commons Compress。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3