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

标签 .net compression

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

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

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

有没有人有任何关于这个的额外信息?

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

我在数据库表中有大量数据可以缩小。
我决定开始压缩数据,而不是压缩现有数据。
当数据进入我的 .NET 代码时,数据是一个字符串。

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

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

非常感谢,
迈克

最佳答案

为了安全起见(除非在某处记录了这一点),请将您自己的魔术头贴在前面。 GUID 是一个不错的选择。

关于.net - 如何判断字节数组是否已被压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2712391/

相关文章:

c# - 解压缩流

c# - .net 中的每种类型都继承自 System.Object 吗?

.net - 为什么 IL 中的 const long 会转换为 Short?

c# - 发布 .NET c# 应用程序时出错

c++ - 如何使用 Zstd 压缩 C++ 字符串?

Java lib压缩html文件?

c# - 将属性添加到动态对象 .NET

.net - 何时需要使用 GAC 共享程序集?

iOS (objective-c) compression_decode_buffer() 返回零

javascript - 压缩/缩小 javascript 文件的方法