我有一个程序,其中它从特定字符串的卷曲请求中搜索回复。我有时得到gzip数据。有没有办法找到答复是文本还是gzipped格式? 标题有时包含gziipped,deflate标题,但它不一致。有没有办法搜索字符串,并找到它是否被gzipped?
答案 0 :(得分:3)
您可以尝试查看前两个字节的数据。对于gzip压缩数据,they should be 0x1f, 0x8b。
Member header and trailer
ID1 (IDentification 1)
ID2 (IDentification 2)
These have the fixed values ID1 = 31 (0x1f, \037), ID2 = 139 (0x8b, \213),
to identify the file as being in gzip format.
答案 1 :(得分:2)
您可以查看文件的第一个字节。也许它们包含magic number。
答案 2 :(得分:0)
gzip文件格式以一些“魔术字节”开头。您可以检查主体是否以这些开头,如果是,则将字节推回到流中并开始解压缩。
答案 3 :(得分:0)
您可以通过zcat管道,如果失败,请按原样使用该字符串。我知道马虎,但它应该是可靠的;纯文本文件永远不会包含有效的gzip压缩数据。
答案 4 :(得分:0)
符合标准的HTTP响应将包含Content-Encoding:或Transfer-Encoding:标头,为压缩响应指定“gzip”,无需通过查看幻数来猜测。不幸的是,很多网站都认为这些标题是错误的。