TextEncoder和TextDecoder彼此相反?

时间:2019-06-09 09:22:31

标签: javascript

我正在使用TextDecoder将字节的随机序列存储为字符串。然后,我想将该字符串转换回ArrayBuffer,以将其作为WebCrypto API函数的输入。
问题是我不找回以前生成的相同缓冲区。这里有一些代码可以更好地解释它:

const textEncoder = new TextEncoder();
const textDecoder = new TextDecoder();

const buffer = crypto.getRandomValues(new Uint8Array(12));

// I expect this to contains the same exact bytes of "buffer", but they are different
const recomputedBuffer = textEncoder.encode(textDecoder.decode(buffer));

// Print to see the differences
console.log(buffer);
console.log(recomputedBuffer);

是字符集不匹配问题还是类似的东西?

(我发现了this question,但似乎是一个不同的问题)

编辑(已解决):
我使用** text *编码器对二进制数据进行编码时犯了一个错误,它们应该与文本一起使用,并且确实可以与文本一起使用。
将二进制编码为字符串btoaatob更合适。

0 个答案:

没有答案