我需要解压缩十六进制值并将其转换为字符串。
实际问题是我无法弄清楚如何解压缩十六进制值
十六进制不包含任何标题, 如果我将十六进制代码复制到CyberChef,则可以将其解压缩并具有原始字符串
在CyberChef中,仅需要原始充气操作 所以我希望能帮助如何在R中进行原始充气
我尝试使用所有选项的memDecompress都没有成功(例如gzip等)
更新: 这是十六进制的示例: e3 0e 71 0d 0e f1 54 c8 cb 2f 52 30 02 00 我可以使用CyberChef将其转换为字符串 “ .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
答案 0 :(得分:0)
必须使用python3做到这一点。 Zlib.decompress()可以解决问题。
链接到python解决方案 Read Dynamics NAV Table Metadata with SQL
答案 1 :(得分:0)
如果将其转换为Base64,然后将其解码回十六进制,我认为它可以解压缩为原始格式,但是可能已通过错误修复进行了更改。几年前曾经这样做,但是很久没使用CyberChef了,对不起