我正在制作一个使用 libcurl 下载文件的 c++(windows devc++)应用程序。我已将 libcurl 源代码和库包含到 mu 可执行文件中,因此不需要外部 dll。libcurl 需要 zlib。但是我不知道如何将它包含在可执行文件中。因此必须存在 zlib1.dll。有谁知道如何包括这个?提前致谢!
我有一个用 Adobe Flex 3 和 Python 2.5(部署在 Google App Engine 上)开发的 Web 应用程序。已用 Python 创建了一个 RESTful Web 服务,其结果目前采用 XML 格式,Flex 正在使用 HttpService 对象读取该格式。
现在的主要目标是压缩 XML,以便减少 HttpService send() 方法和结果事件之间的时间。我查找了 Python 文档并设法使用 zlib.compress() 来压缩 XML 结果。
然后我将 HttpService 结果类型从“xml”设置为“text”,并尝试使用 ByteArrays 将字符串解压缩回 XML。这就是我失败的地方。我正在做这样的事情:
var byteArray:ByteArray = new ByteArray();
byteArray.writeUTF( event.result.toString() );
byteArray.uncompress();
var xmlResult:XML = byteArray.readUTF();
Run Code Online (Sandbox Code Playgroud)
它在 byteArray.uncompress() 处抛出异常并表示无法解压缩 byteArray。此外,当我跟踪 byteArray 的长度时,它会得到 0。
无法弄清楚我做错了什么。感谢所有帮助。
- 编辑 -
编码:
# compressing the xml result in Python
print zlib.compress(xmlResult)
# decompresisng it in AS3
var …Run Code Online (Sandbox Code Playgroud) 我见过关于 zlib 压缩的最小和最大大小的线程。我想知道人们认为可确保最佳速度的压缩数据块的最佳大小是多少。将文件分割成多个文件块是否有优势?
谢谢。
抱歉这个含糊不清的问题......但我不太确定问题是什么。我有一个节点 http 服务器,用于将 JSON 数据提供给 Web 应用程序。它工作得很好,但我的 JSON 字符串开始变大(10-12 MB),所以我想用 zlib 添加压缩。
JSON 数据在一个字符串变量中,我想压缩然后写入响应对象......但返回到客户端的结果似乎总是具有完美的标头,并且没有内容。这是我的 deliveryResponse 函数:
var deliverResult = function (data, response, callback, acceptEncoding){
var payload = callback + '(' + JSON.stringify(data) + ');';
if (acceptEncoding.match(/\bdeflate\b/)) {
response.writeHead(200, { 'Content-Encoding': 'deflate', 'Content-Type': 'text/javascript; charset=UTF-8' });
zlib.deflate(payload, function(err, result){
if(!err){
//console.log(result.toString('utf8')); // I have data on the console here
response.write(result.toString('utf8')); // No data sent here
}
});
} else if (acceptEncoding.match(/\bgzip\b/)) {
response.writeHead(200, { 'Content-Encoding': 'gzip', 'Content-Type': 'text/javascript; charset=UTF-8' });
zlib.gzip(payload, …Run Code Online (Sandbox Code Playgroud) 我试图获得一个函数来解压缩一个用 .gz 压缩的文本文件。它需要解压缩给定路径的 .gz 文件并写入给定目的地的未压缩文本文件。我正在使用 C++,我所看到的是 ZLIB 完全符合我的需要,除了我无法在网络上的任何地方找到 1 个显示它这样做的示例。任何人都可以向我展示一个例子或至少指导我朝着正确的方向前进吗?
有没有办法可以在程序 C 中从 gzFile 中获取文件描述符?
我们可以像这样从 File* 获取 'fd':
FILE * file
file = fopen("myfile","rt");
int fd = fileno(file);
Run Code Online (Sandbox Code Playgroud)
但现在我想从 var 类型的 gzFile 中获取“fd”
gzFile gzfile = gzopen("myfile", "rt");
Run Code Online (Sandbox Code Playgroud)
我可以从 gzfile 获得“fd”吗?
我正在尝试使用 zlib 来压缩一些冗长的字符串,其中一些可能包含 unicode 字符。目前,我正在用 ruby 做这件事,但我认为这真的适用于任何语言。这是超级基本的实现:
require 'zlib'
example = "“hello world”" # note the unicode quotes
compressed = Zlib.deflate(example)
puts Zlib.inflate(compressed)
Run Code Online (Sandbox Code Playgroud)
这里的问题是文本是这样出现的:
\xE2\x80\x9Chello world\xE2\x80\x9
Run Code Online (Sandbox Code Playgroud)
...没有unicode引号,只有奇怪的无法识别的字符。有谁知道可以在保留 unicode 字符的同时使用 Zlib 的方法?红宝石答案的奖励积分:)
在 Deflate 算法中,有两种方法可以对长度为 258 进行编码:
代码 284 + 5 个全 1 的额外位
代码 285 + 0 个额外位;
乍一看,这不是最佳选择,因为正确使用代码 285 将允许编码长度为 259;
这种对偶性是某种规范错误,由于兼容性原因而未修复,还是存在一些争论 - 例如,由于某种原因,长度 258 必须用较短的代码(0 个额外位)进行编码?
我加了
php_flag zlib.output_compression off
Run Code Online (Sandbox Code Playgroud)
到我的.htaccess。我读到如果我想让 mod_deflate 工作,需要禁用 PHP 压缩。
有什么方法可以测试PHP压缩是否真的被禁用了?
我正在尝试使用 Python 解压缩 *.Z 文件。我是通过 FTP(二进制模式)下载的。该文件使用 7zip 成功解压缩(文件上的“信息”表示它的类型为“Z”)。原始文件可以在ftp://cddis.gsfc.nasa.gov/gps/products/1860/igr18600.sp3.Z找到。
我已经阅读了在 Python 中使用 zlib 模块的信息,并有一些我正在使用的测试代码:
import zlib
comp_data = open('C:\Temp\igr18600.sp3.Z', 'rb').read()
print(comp_data[0:10])
uncomp_data = zlib.decompress(comp_data)
with open('c:\temp\igr18600.sp3', 'wb') as f:
f.write(uncomp_data)
f.close()
Run Code Online (Sandbox Code Playgroud)
当我执行这个时,我得到以下输出:
b'\x1f\x9d\x90#\xc6@\x91\x01#F'
Traceback (most recent call last):
File "test.py", line 7, in <module>
uncomp_data = zlib.decompress(comp_data)
zlib.error: Error -3 while decompressing data: incorrect header check
Run Code Online (Sandbox Code Playgroud)
zlib 显然不喜欢标题。前几个字节似乎与压缩文件的正确幻数序列 0x1F9d 匹配(根据https://en.wikipedia.org/wiki/List_of_file_signatures)。
在紧要关头,我可以通过直接使用 7zip 来解决这个问题。但我希望找到一个纯 Python 类型的答案。尽管花了一天的大部分时间在谷歌上搜索答案(或此错误消息),但我运气不佳。也许我的搜索技巧正在萎缩?
zlib ×10
compression ×5
c++ ×2
python ×2
.htaccess ×1
apache-flex ×1
api ×1
c ×1
deflate ×1
gzip ×1
javascript ×1
node.js ×1
performance ×1
php ×1
ruby ×1
static ×1
unicode ×1
utf-8 ×1