.net 如何判断字节数组是否已被压缩?

.net 如何判断字节数组是否已被压缩?,.net,compression,.net,Compression,我是否可以依靠.NET中使用System.IO.Compression.DeflateStream压缩的前几个字节的数据总是相同的 这些字节似乎总是第一个字节: 237、189、7、96、28、73、150、37、38、47 我假设这是某种头,我想假设这个头是固定的,不会改变 有人知道这方面的额外信息吗 背景信息(我想知道这些信息的原因是…) 我在一个数据库表中有大量的数据,这些数据可能需要缩小。 我已经决定开始压缩数据,而不必费心压缩现有数据。 当数据进入我的.NET代码时,数据是一个字符串

我是否可以依靠.NET中使用System.IO.Compression.DeflateStream压缩的前几个字节的数据总是相同的

这些字节似乎总是第一个字节: 237、189、7、96、28、73、150、37、38、47

我假设这是某种头,我想假设这个头是固定的,不会改变

有人知道这方面的额外信息吗

背景信息(我想知道这些信息的原因是…)

我在一个数据库表中有大量的数据,这些数据可能需要缩小。 我已经决定开始压缩数据,而不必费心压缩现有数据。 当数据进入我的.NET代码时,数据是一个字符串

我希望能够查看字符串的前几个字节,看看它是否已被压缩,如果已被压缩,则需要对其进行反压缩

我最初认为可以将字符串转换为字节,然后尝试对数据进行反压缩。如果发生异常,我可以假设它没有被压缩。 但是我认为检查头字节会给我更好的性能

非常感谢,,
Mike G

为了安全起见(除非有文件记载),请将您自己的魔法头贴在前面。GUID是一个很好的选择。

在.NET4.0中对GZipStream进行了一些改进,以防止出现这种情况。迁移到.NET for可能是一种选择:

System.IO.compression中的压缩算法在.NET 4中得到了改进。 DeflateStream和GZipStream不再膨胀已经压缩的数据


谢谢,我想我会选这个,好主意!(我还没有使用NET4,所以另一个答案对我来说不可用)