【发布时间】:2018-04-09 12:09:15
【问题描述】:
最终目标:
我想读取一个 rxdata 文件,在给定程序状态的情况下,该文件在 Ruby 中用Zlib::Deflate.deflate 压缩。我无法在 Ruby 中使用 Zlib::Inflate.inflate。因此,我研究了 C#。
假设我在 Ruby 中有这个压缩字符串:
X\x85\xCBH\xAD\x04\x00\xF0\x15\xD6\x88
如果我在 Ruby 中对其运行 Zlib::Inflate.inflate,它会给我一个包含 hey 的字符串。
现在,如果我在 C# 中有这个压缩字符串,有没有一种简单的方法可以将它膨胀成 hey 的字符串?
我已经看过Ionic.Zlib,但我无法从中获得更多智慧。
我对压缩等知之甚少。
【问题讨论】:
-
您可能想使用
DeflateStream。我会详细说明,但我现在正在使用移动设备 -
您知道具体使用哪些方法吗?我已经用 DeflateStream 尝试了几件事,但运气不佳。编辑:啊,明白了。
-
恐怕我自己不是压缩专家,可能会有不同的标头数据或比较 Ruby 的 ZLib 和 C# 的东西。请注意,如果您的目标是 .NET 4.5 或更高版本,C# 仅在使用其他算法之前使用 ZLib。让我试试看能不能解压你的字符串。
-
是否可以获得“正常”十六进制或十进制数字的原始字节值?我不知道如何解析您发布的字符串并且不知道 Ruby。我尝试在 C# 中压缩“嘿”,得到了类似的东西,但只包含 5 个字节,不知道如何比较。