【问题标题】:Is there Zlib for R ? raw inflate function - how to decompress hexadecimal valuesR 有 Zlib 吗?原始膨胀函数 - 如何解压缩十六进制值
【发布时间】:2019-05-09 18:44:57
【问题描述】:

我需要解压缩十六进制值并将其转换为字符串。

实际问题是我无法弄清楚如何解压缩十六进制值

十六进制不包含任何标题, 如果我将十六进制代码复制到 Cyber​​Chef,我可以解压缩这些代码并获得原始字符串

在 Cyber​​Chef 中只需要 Raw Inflate 操作 所以我希望帮助如何在 R

中进行原始膨胀

我已经尝试使用所有选项进行 memDecompress 没有成功(即 gzip 等)

更新: 这是十六进制的示例: e3 0e 71 0d 0e f1 54 c8 cb 2f 52 30 02 00 我可以使用 Cyber​​Chef 将其转换为字符串 ".TESTI 也没有 2"

RLdata<- sqlQuery(connection, ..... AS Varbinary(max) AS NOTEShort ......

> RLdata$NOTEshort[4268]
[[1]]
 [1] e3 0e 71 0d 0e f1 54 c8 cb 2f 52 30 02 00

> unlist(RLdata$NOTEshort[4268])
 [1] e3 0e 71 0d 0e f1 54 c8 cb 2f 52 30 02 00
> memDecompress(unlist(RLdata$NOTEshort[4268]),type = "gzip", asChar = TRUE)
Error in memDecompress(unlist(RLdata$NOTEshort[4268]), type = "gzip",  : 
  internal error -3 in memDecompress(2)

> memDecompress(unlist(RLdata$NOTEshort[4268]),type = "unknown", asChar = TRUE)
[1] "ã\016q\r\016ñTÈË/R0\002"
Warning message:
In memDecompress(unlist(RLdata$NOTEshort[4268]), type = "unknown",  :
  unknown compression, assuming none

【问题讨论】:

  • 你能发布一个你已经尝试过的sn-p吗?
  • 已更新,请见上文
  • Cyber​​Chef 似乎为此目的使用了 zlibjs 库。 R ...是否存在类似的软件包?无法从 CRAN 中找到 zlib :(

标签: r compression zlib inflate


【解决方案1】:

如果您将其转换为 Base64,然后将其解码回十六进制,我认为它会解压缩为原始文件,但可能已被错误修复更改。几年前它曾经这样做过,但我有一段时间没有使用 Cyber​​Chef,抱歉

【讨论】:

    【解决方案2】:

    必须使用 python3 来做到这一点。 Zlib.decompress() 成功了。

    链接到python解决方案 Read Dynamics NAV Table Metadata with SQL

    【讨论】:

    • 你能解释更多你的回答吗?
    猜你喜欢
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 2023-03-09
    • 2023-03-05
    相关资源
    最近更新 更多