这是我使用pako压缩二进制字符串(字符代码大于255)的方法:
现在,我该如何从这个对象中在JavaScript中获取原始字符串? 我尝试过以下方法:
A.
所有这些方法将以JavaScript字符串的形式呈现不同的数据,与原始数据不同。 当我使用具有a.download函数的函数将解压缩的pako.inflate(xhr.responseText)保存到文件中时,解压缩后的文件与原始文件具有完全相同的字节(因此压缩和解压缩正常工作,没有任何字节修改)。
var charData = xhr.responseText.split('').map(function(x){return x.charCodeAt(0);});
var binData = new Uint8Array(charData);
var data = pako.deflate(binData, {level:"9"});
以下是如何解压缩数据:
var data2 = pako.inflate(xhr.responseText);
现在,我该如何从这个对象中在JavaScript中获取原始字符串? 我尝试过以下方法:
A.
pako.inflate(xhr.responseText, {to:"string"});
B.
String.fromCharCode.apply(null, data2);
C.
for (var i = 0, l = data2.length; i < l; i++)
{
result += String.fromCharCode(parseInt(array[i], 2));
}
所有这些方法将以JavaScript字符串的形式呈现不同的数据,与原始数据不同。 当我使用具有a.download函数的函数将解压缩的pako.inflate(xhr.responseText)保存到文件中时,解压缩后的文件与原始文件具有完全相同的字节(因此压缩和解压缩正常工作,没有任何字节修改)。