小编spe*_*edy的帖子

如何将对象转换为二进制字符串

这是我使用 pako 压缩二进制字符串(255 以上的字符代码)的方法:

var charData = xhr.responseText.split('').map(function(x){return x.charCodeAt(0);});
var binData = new Uint8Array(charData);
var data = pako.deflate(binData, {level:"9"});
Run Code Online (Sandbox Code Playgroud)

这是我解压缩数据的方法:

var data2 = pako.inflate(xhr.responseText);
Run Code Online (Sandbox Code Playgroud)

现在,如何从这个对象中获取 JavaScript 中的原始字符串?我尝试过这样的方法:

一种。

pako.inflate(xhr.responseText, {to:"string"});
Run Code Online (Sandbox Code Playgroud)

B.

String.fromCharCode.apply(null, data2);
Run Code Online (Sandbox Code Playgroud)

C。

for (var i = 0, l = data2.length; i < l; i++)
{
result += String.fromCharCode(parseInt(array[i], 2));
}
Run Code Online (Sandbox Code Playgroud)

所有这些方法都带来了与原始数据不同的 JavaScript 字符串数据。当我将解压后的 pako.inflate(xhr.responseText) 保存到文件中(使用带有 a.download 的函数)时,解压后的文件与原始文件的字节数完全相同(因此压缩和解压工作正常,无需任何字节修改)。

javascript browser

5
推荐指数
1
解决办法
3515
查看次数

标签 统计

browser ×1

javascript ×1