gpt4 book ai didi

c - gzip 并将粘贴内容复制到 C 程序中的字符串/字符数组

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:07 25 4
gpt4 key购买 nike

我正在尝试制作一个 arduino 网络服务器,这部分已经完成。现在我需要使用一些压缩。

这是我要提供的 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

我知道我的网络服务器可以在没有 gzip 的情况下工作,我已经测试过它并且可以在浏览器上看到它。我在这里用 gzip 做错了什么?

最佳答案

您从文本文件中复制和粘贴可能删除了一些不可打印的字符。无论如何,它删除了所有换行符,正如您可以清楚地看到的那样。

现在,gzip 文件不是 ASCII,你真的不应该像 C 中的字符串文字一样对待它们。至少,你必须用它们的转义表示替换所有非 ASCII 字符。

通常,解决这个问题的正确方法可能是将压缩文件添加到二进制文件的数据或文本部分,并在需要的地方使用它的地址。

这是一个 answer这解释了如何将二进制 blob 添加到目标文件以及如何从 C 代码访问它。

关于c - gzip 并将粘贴内容复制到 C 程序中的字符串/字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35542561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com