我有一个 ArrayBuffer,它是通过使用 Frida 读取内存返回的。我正在将 ArrayBuffer 转换为字符串,然后使用 TextDecoder 和 TextEncoder 将其转换回 ArrayBuffer,但是在此过程中结果正在改变。解码和重新编码后的 ArrayBuffer 长度总是更大。是否有广泛的字符解码?
如何在不丢失完整性的情况下将 ArrayBuffer 解码为字符串,然后返回到 ArrayBuffer?
示例代码:
var arrayBuff = Memory.readByteArray(pointer,2000); //Get a 2,000 byte ArrayBuffer
console.log(arrayBuff.byteLength); //Always returns 2,000
var textDecoder = new TextDecoder("utf-8");
var textEncoder = new TextEncoder("utf-8");
//Decode and encode same data without making any changes
var decoded = textDecoder.decode(arrayBuff);
var encoded = textEncoder.encode(decoded);
console.log(encoded.byteLength); //Fluctuates between but always greater than 2,000
Run Code Online (Sandbox Code Playgroud)