【发布时间】:2020-07-06 02:47:21
【问题描述】:
我尝试对从 websocket 连接获得的字符串进行放气,但每次尝试运行此代码时都会出现错误。我还尝试使用 ascii 编码直接从字符串中获取字节,但它也不起作用。
public static byte[] Decompress(string input)
{
byte[] data = Convert.FromBase64String(input)
byte[] decompressedArray = null;
using (MemoryStream decompressedStream = new MemoryStream())
{
using (MemoryStream compressStream = new MemoryStream(data))
{
using (DeflateStream deflateStream = new DeflateStream(compressStream, CompressionMode.Decompress))
{
deflateStream.CopyTo(decompressedStream);
}
}
decompressedArray = decompressedStream.ToArray();
}
return decompressedArray;
}
System.IO.InvalidDataException:“块长度与其补码不匹配。”
我尝试了该代码的一些不同变体,但没有任何效果,但我知道这是可能的,因为我可以使用此网站 http://www.txtwizard.net/compression 和 deflate 选项对其进行放气。
我想放气的一个示例字符串:
eAGdVMmO2kAU / BXUc3WYXr1wy3LIKYqUjHKIo6jtboODsVG72YT491SbIWMYkcNgiX4uv6pXr7efxHXdatYvtDPs8Qf7wkh0JF3xx5a + J7MjUVnKK8tsQbOEJqyQ2pQ0kSJ8s6118wOZcSlpROp2q411n7Xb2t5bAzyO5SkiymjDdFLaSgpZJCZOK6NYTINE7ztnx1pMifg0kAwrK16mqTSWSl4VcWGVGkiLOniTjKJqa / F + ky314Xu9ghBXIpFZSoPEXK / sCyqylAWTVRfKrTqDbLLrXGMIcrd1v9ENkGNOfE5mOXE5iXKyRywSBAcEFOMOI + MIFghijD1GkKq6aRDlpGh0uRy4vXfd0g7gDpYRIb1b67L2g9qUq9Mpb / 9VRF0keDQ0cD5 + fZo89Xp + 5gUjUuB7oDKMl7pdG9LpNL3Sas7uGT6JZEpVIIYXNg3hniOU6TQb8PAC / H9WNs7Z1t / YgfDAB50P0bMl3dTzFmBOGlvB3JWxmyb5VIrJ40Se7QZX8Vh07OleS2FSXjckxtSbou + 31mFe77cjIfmmZlLMZbBz3Ygce7nXhryzMsDH9JtWPmzKpfWTbzhG450yWhr1tqXJsix93QnExmZGvcgwZ5ct9rLHBjRsMIXNBiqJyKa37vlqUYZJQ1NDVZEmlRA6sfgL5 / N3jfsDl8 + djLNKiwMeDrGvnG6XkC60mQ + 3iT + sw2XAI1J2TecYsh60KbQtkDVAPEA8VpXJLhDuNPLAdHgArbXTKzJ7F4uIVE29JjPvNvaE36 + / hpSDkQ == P>
【问题讨论】:
标签: c# compression deflate screeps