gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:43:53 24 4
gpt4 key购买 nike

下面是我如何使用 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"});

下面是我解压数据的方法:

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 字符串,而不是原始数据。当我将解压缩的 pako.inflate(xhr.responseText) 保存到一个文件(使用带有 a.download 的函数)时,解压缩的文件具有与原始文件完全相同的字节(因此压缩和解压缩工作正常,没有任何字节修改)。

最佳答案

我只是想做同样的事情,并找到了一种将对象转换为二进制字符串的方法,反之亦然。我只是创建了一个将 JSON 对象转换为二进制字符串和将二进制字符串转换为 JSON 对象的两个函数。 covertObjectToBinary 和 convertBinaryToObject。

let obj = {a:1}
function covertObjectToBinary(obj) {
let output = '',
input = JSON.stringify(obj) // convert the json to string.
// loop over the string and convert each charater to binary string.
for (i = 0; i < input.length; i++) {
output += input[i].charCodeAt(0).toString(2) + " ";
}
return output.trimEnd();
}

function convertBinaryToObject(str) {
var newBin = str.split(" ");
var binCode = [];
for (i = 0; i < newBin.length; i++) {
binCode.push(String.fromCharCode(parseInt(newBin[i], 2)));
}
let jsonString = binCode.join("");
return JSON.parse(jsonString)
}
console.log('covertObjectToBinary =>', covertObjectToBinary(obj))
console.log('convertBinaryToObject =>', convertBinaryToObject(covertObjectToBinary(obj)))

关于javascript - 如何将对象转换为二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25713735/

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