ruby-on-rails - 如何将 Base64 编码的二进制(使用 LZX 算法编码)解码回原始字符串

标签 ruby-on-rails node.js ruby lzx lz77

我正在尝试解码使用 LZX 算法编码的字符串,LZX 窗口大小为 2 兆字节(二进制),然后转换为 base64。

我收到此字符串是 Microsoft 更新 API ( GetUpdateData ) 的响应。 根据Microsoft documentation对于 lzx/lz77 算法,XmlUpdateBlobCompressed 字段为:

compressed using a LZX variant of the Lempel-Ziv compression algorithm. The LZX window size used for compressing this field is 2 megabytes.

我尝试将字符串解码/解压缩回其原始 XML,但没有成功。我尝试了 lz_string 库 (NodeJS/Ruby) 和其他一些库,但到目前为止没有成功。

这是我尝试解码/解压缩回原始 XML 的示例:

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

有人成功做到这一点吗?

最佳答案

正如 Dave 在评论中添加的那样,响应中的是 cab 文件。

我已经保存了 cab 文件并使用 libmspack 提取了它

  cab_file_path = "/Users/kalpesh/playground/xml.cab"
  cab_file = File.open(cab_file_path, "wb")
  # Save Cab file
  cab_file.puts Base64.decode64(xml_blob) # xml_blob is the sample which I have given in description

  # Extract cab file
  blob_xml_path = "/Users/kalpesh/playground/xml_blob.txt"
  cab_decompressor = LibMsPack::CabDecompressor.new
  cab = cab_decompressor.open(cab_file_path)
  cab_decompressor.extract(cab.files, blob_xml_path)

关于ruby-on-rails - 如何将 Base64 编码的二进制(使用 LZX 算法编码)解码回原始字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60152165/

相关文章:

ruby-on-rails - 期望和expect_any_instance_of之间的区别

ruby-on-rails - 接受散列或散列数组作为 Ruby 方法的参数

ruby-on-rails - 存储 "schemas"以使用 postgres 和 rails 构建自定义表单

ruby-on-rails - 如何使用 paperclip-Rails 加载和验证视频

node.js - Amazon Lambda 上来自 ffmpeg 的 SIGSEGV

node.js - 哪个数据库用于基于 gps 的跟踪

ruby-on-rails - 无法在 Rails 5.0 的 ApplicationHelper 方法中使用 "number_with_precision"

javascript - Node.js 是否强制 setTimeout 的最小延迟?

ruby - 使用ruby google-api-client获取youtube视频数据

ruby - ActiveRecord 和使用拒绝方法