- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 textarea,其中输入的值被转换为十六进制并连接,如下所示:
4f43 5441 1d00 0000 2400 0000 0004 0000
0200 0000 0000 0000 0000 0000 0000 0000
0200 0000 0206 0073 6b79 626f 780e 0073
6b79 626f 7865 732f 7768 6974 6502 0800
6d61 7074 6974 6c65 1900 4f47 5a20 4564
6974 6f72 2066 6972 7374 2065 7665 7220
6d61 7003 6670 7300 0000 0000 0500 0200
0400 0300 0500 0700 0000 0044 0000 0044
0000 0044 0000 0000 0000 00ff 0000 0500
0000 0544 0000 0544 0000 0044 6e00 3200
0000 0000 0000 0200 0207 0007 0007 0001
0001 0001 0000 0202 0003 0004 0005 0006
0007 0000 0202 0003 0004 0005 0006 0007
0000 0202 0003 0004 0005 0006 0007 0000
0200 0000 0000 0007 0000 0000 0000 0100
0000 0000 0000 0000 0000 0000 0100 0000
0000 0000 0000 0000 0000 0100 0000 0000
0000 0000 0000 0000
<script src="https://cdn.jsdelivr.net/pako/1.0.3/pako.min.js"></script>
<textarea id="input"></textarea>
<button onclick="toHex()">Convert to hex</button>
<a id="downloadbtn">Download as gzip</button>
var pako = window.pako;
function toHex(){
input = document.getElementById("input").value;
hexresult = input.split("").reduce((hex,c)=>hex+=c.charCodeAt(0).toString(16).padStart(2,"0"),"");
gzipresult = pako.gzip(hexresult, { level: 6 });
download(gzipresult);
}
function download(data){
downloadbtn = document.getElementById("downloadbtn");
var blob = new Blob([ data ], {type : "application/gzip",});
if (window.navigator.msSaveBlob) {
navigator.msSaveBlob(blob, "output.gz");
} else {
var csvUrl = URL.createObjectURL(blob);
$('#downloadbtn').attr({
'download': "output.gz",
'href': csvUrl
});
};
}
Buffer.from
的使用,我认为它是 nodejs 原生的(我需要在浏览器中使用它)所以我尝试了
this standalone script 中的
this repo ,但是生成的文件仍然相同(仍然与 zlib 不同),但无论如何,我感谢尝试提供帮助!
1f8b 0800 4767 4c5e 0003 cb48 cdc9 c957
28cf 2fca 4951 0400 6dc2 b403 0c00 0000
1f8b 0800 0000 0000 0003 33b3 3033 354b
06c2 3423 0373 73b3 3473 2320 dbc4 c810
00b2 2eed 2a18 0000 00
最佳答案
Edit: After writing this answer a little too fast, I noticed the outputs were not absolutely the same. There is a one byte difference, corresponding to the OS type header. zlib returns
a
, which represents TOPS-20, and Pako returns3
, which represents Unix.
gzipresult = pako.gzip(hexresult, { level: 6 });
gzipbuffer = Buffer.from(gzipresult);
// Don't forget to `npm i -S pako`
const pako = require("pako");
const zlib = require("zlib");
const input = "Hello world!";
const hexStr = input.split("").reduce((hex,c)=>hex+=c.charCodeAt(0).toString(16).padStart(2,"0"),"");
zlib.gzip(hexStr, function(_, zlibResult) {
const zlibHex = zlibResult.toString("hex");
const pakoResult = pako.gzip(hexStr, { level: 6 });
const pakoHex = Buffer.from(pakoResult).toString("hex");
console.log("zlib", zlibHex);
console.log("pako", pakoHex);
console.log("Outputs are equal ===", zlibHex === pakoHex);
});
/*
Output:
pako 1f8b080000000000000333b13033354b06c23423037373b334732320dbc4c81000bde2d6f318000000
zlib 1f8b080000000000000a33b13033354b06c23423037373b334732320dbc4c81000bde2d6f318000000
^
actually not the same
Outputs are equal === false
*/
关于javascript - 在网络上使用 GZIP 压缩十六进制字符串(Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60269715/
我正在尝试创建有效的 gzip 文件(可以使用标准 Linux gzip 解压缩),其中的数据使用 DEFLATE 算法和静态/预设字典编码。 我已阅读 DEFLATE 的两个规范和 gzip ,而且
我刚刚搜索了gzip和 Deflate ,并发现 Deflate 更好。 GZip or Deflate for HTTP compression Why use deflate instead of
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
我一直在寻找 Gzip 是否支持多部分文件压缩。 From what I have seen so far it does not, but how come 7z allows multipart
我可以连接两个已经 gzip 的文件(使用 gzip)然后用枪压缩它们吗? 截至今天,我从远程服务器下载 gzip 压缩文件,单独对其进行 gunzip,然后将它们合并。 希望通过合并 gzipped
我正在创建两个 gzip 文件,一个只包含一个 gzip 成员,而第二个包含 2 个 gzip 成员(两个文件连接成一个 gzip 文件)。 当我尝试通过网络服务器下载此文件时,chrome 会很好地
当我对文件夹进行去皮重和 gzip 压缩时,每次我都会得到不同的文件大小。 目录内容不变,没有变化。压缩后的文件大小变化 20 到 100 字节。这是正常行为吗? 我的数据会受到影响吗? 谢谢 最佳答
比方说 file.txt.gz有 2GB,我想看到最后 100 行左右。 zcat
我一直听说对您的网站进行 gzip 压缩是加快交付速度的良好做法。我的网站总体负载非常大,我还应该研究 gzip 吗?我还了解了使用 gzip 的缺点,例如解压缩内容以便浏览器显示所需的时间。这是真的
下载 jQuery 的生产副本时,链接旁边显示该文件为 32K Minified & Gzipped。我得到了 Minified,但是 Gzipped 是什么意思? 它是否被网络服务器压缩,如 Apa
我的网站很高兴根据以下内容进行 Gzip 压缩: http://www.gidnetwork.com/tools/gzip-test.php 但是,当我通过 Yslow 运行它时,我得到了 Gzip
我使用命令 tar 一组文件:tar -czvf file.tar.gz file/ 然后复制到 USB(ext4 格式),我检查了我可以解压它。重装系统后,挂载usb时发生了一些错误,我执行fsck
我有一个提供小部件的网络服务。为了可扩展性,我想在 Amazon S3 上保留 js 文件的 gzip 版本。问题是不能接受 gzip 文件的浏览器将不会被提供。 任何人都知道我在哪里可以找到统计数据
我正在使用 Chrome 和 Firefox 下的 Yslow 工具查看我的开发站点,其中一项建议是我对适当的内容进行 gzip。作为起点,我刚刚在我的 [/] 配置中添加了“tools.gzip.o
我正在开发一个网站,我正在使用 gzip.exe 来预压缩 css 和 js 文件(只有 1 个 css 文件从 4.53 KB 到 1.50 KB,还有一个 js 文件包含 jquery 和一些来自
我们必须使用什么类型的响应监听器来处理 Android Volley 的 gzip 响应? 如果使用 String 监听器,则响应似乎会丢失其编码。 你如何使用 Volley 处理 gzip 响应?
我用 Fiddler调试我的应用程序。每当响应被服务器压缩,而不是解压缩响应时,Fiddler 显示不可读的二进制数据: /* Response to my request (POST) */ HTT
我通常使用tar zcvf压缩并使用tar zxvf解压缩(由于习惯使用gzip)。 我最近购买了一个具有超线程功能的四核 CPU,因此我有 8 个逻辑核心,并且我注意到许多核心在压缩/解压缩期间未使
我正在使用 Google Cloud Storage 控制台上传文件。我没有使用任何命令行工具。 我想在元数据中将 Content-Encoding 设置为 gzip(-z 选项)。 请看下面的截图,
我正在将mysqldump的结果用管道传输到gzip,gzip的速度似乎大大落后 gzip: 34.9MiB 0:01:54 [ 218kiB/s] mysqldump: 735MiB 0:01:5
我是一名优秀的程序员,十分优秀!