gpt4 book ai didi

java - 在 Java 中解压缩 zlib 压缩的字符串

转载 作者:行者123 更新时间:2023-11-30 09:49:50 25 4
gpt4 key购买 nike

我有一个从远程 Python 脚本接收压缩字符串的 Java 模块。 Python 脚本使用 zlib.compress() 压缩字符串。我只是想用 Java 解压缩它并将其显示给用户。

man page对于 Java 的内置 zip.Deflater 对象,非常明确地描述了如何解压缩已使用 zlib.compress() 压缩的内容。但是,这种方法对我不起作用。根据我使用的编码,我要么收到“不正确的 header 检查”错误,要么解压缩返回空字符串。

那么,我该如何解压呢?数据在传输过程中没有损坏,压缩字符串以“x\x9c”开头,这显然适合 zlib 压缩的内容。

我以前从未在这个级别上处理过压缩/解压缩,我感到很困惑。对于额外的信用,我很感激压缩/未压缩和充气/放气之间的解释。根据this它们是不同的,但大多数互联网似乎都将它们互换用于 zlib。这只会让寻找解决方案变得更加困难,因为我无法告诉您我实际上是在尝试“解压缩”还是“膨胀”这些数据。

最佳答案

困惑的产生是因为一些明亮的 Spark 开始将 zlib 协议(protocol)描述为“deflate”。它可能会帮助您阅读 these Java docs 中提到的 RFC。 .

还有 this SO topic非常相关。

我建议你这样做

print repr(zlib.compress("The quick brown dog etc etc")

在 Python (A) 中比较使用 Deflater (B) 使用等效 Java 代码的结果。还要确保您可以 Inflate B 来恢复您的测试输入。检查您是否没有遭受 Python 或 Java 或两者中的 unicode <-> 字节复杂性的困扰。

您是否尝试过按照@patthoyts 在您引用的 SO 主题中的回答对 Python 进行“压缩”?

关于java - 在 Java 中解压缩 zlib 压缩的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5532591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com