gpt4 book ai didi

ios - Objective C 中的 ASC-GZIP 解码

转载 作者:行者123 更新时间:2023-11-28 22:38:17 25 4
gpt4 key购买 nike

我一直在 Internet 上搜索一个库或一段代码,它们可以帮助我解压具有这种编码类型的 XFDL 文件:application/x-xfdl;content-encoding="asc-gzip"。我处理过的所有以前的 XFDL 文件都有这种类型的编码:application/vnd.xfdl;content-encoding="base64-gzip",我使用 Base64 和 GZIP(github 上的两个库)都没有问题由尼克洛克伍德撰写)。我在 Python 中找到了可以解压缩这些类型文件的代码,位于此处:http://www.ourada.org/blog/archives/375 ,但我不知道如何将此代码实现到 Objective-C 项目中。

任何帮助或正确方向的插入将不胜感激。

谢谢!

最佳答案

我发现的asc-gzip 示例实际上是zlib,然后是base-64 编码。它被分成 block ,每个 block 前面都有压缩和未压缩的长度,按大端顺序排列,每个 block 两个字节。

所以要解码:

  1. Base-64 解码整个事情。然后在解码字节上:
  2. 按大端顺序从前两个字节计算下一个压缩长度。称呼它c
  3. 从接下来的两个计算下一个未压缩的长度big-endian 顺序的字节。称它为
  4. 使用zlib解码包含的 zlib 流接下来的 c 个字节。验证 zlib 是否准确地解码了 c 个字节,以及生成的未压缩数据是否恰好是 u字节长。
  5. 从第 2 步开始重复,直到数据用完。(应该全部吃完。)

有趣的是,“asc”和“gzip”在编码名称中都是用词不当。 asc 实际上是指 base 64,而 gzip 实际上是指 zlib。去图吧。

关于ios - Objective C 中的 ASC-GZIP 解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15305381/

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