我正在尝试制作一个arduino and服务器,这部分已经完成了。现在我需要使用一些压缩。
这是我想要服务的simple.htm网页
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>我尝试了gzip (尝试了不同的工具,命令行gzip,keka,两者都略有不同),并得到了simple.htm.gz。我在一个文本编辑器中打开它,它看起来像这样
ã˝…Vsimple.htm-å;Ä D{OÅêÿoh¸ƒ∆hacπ?§·ˆ.ƒÍeÊe vjñuÓÑ
ש
¯±=:™Çc≠∆(zÁfl ܵª
H.YQ2G6ÑçG≤HJNÊ=3fl}?ı=me在服务器上,我做了这个
char *htmlContent="ã˝…Vsimple.htm-å;Ä D{OÅêÿoh¸ƒ∆hacπ?§·ˆ.ƒÍeÊe vjñuÓÑ◊©¯±=:™Çc≠∆(zÁfl ܵªH.YQ2G6ÑçG≤HJNÊ=3fl}?ı=me"我提供了标题和内容,包括"Content-Encoding: gzip";但是chrome说
This webpage is not available
ERR_CONTENT_DECODING_FAILED我知道我的see服务器在没有gzip的情况下工作,我已经对它进行了测试,我可以在浏览器上看到它。我在这里做错什么了?
发布于 2016-02-21 21:54:16
文本文件中的复制和粘贴可能删除了一些不可打印的字符。无论如何,它删除了任何换行符,正如您可以清楚看到的那样。
现在,gzip‘’ed文件不是ASCII,您真的不应该像对待C中的字符串那样对待它们。至少,您必须用它们的转义表示来替换所有非ASCII字符。
通常,正确的方法可能是将压缩文件添加到二进制文件的数据或文本部分,并在需要的地方使用它的地址。
下面是一个answer,它解释了如何向对象文件中添加二进制blob,以及如何从C代码中访问它。
https://stackoverflow.com/questions/35542561
复制相似问题