无法将数组缓冲区转换为字符串?

时间:2018-06-13 00:35:29

标签: javascript utf-8 protocol-buffers

我一直在尝试将数组缓冲区转换为人类可读的字符串,但是当我尝试解码数组缓冲区时,它会返回外来字符。

arrayBuffer = `[18, 32, 121, 49, 72, 220, 122, 210, 56, 86, 171, 17, 36, 81, 52, 151, 102, 70, 216, 254, 207, 175, 161, 253, 216, 30, 99, 35, 30, 121, 226, 96, 86, 94]` 
var readableString = new TextDecoder('utf8').decode(arrayBuffer)

我尝试使用text-encoding包解码数组,但它返回y1H z 8V $Q4 fF ϯ c#y `V^。是否有任何理由无法将其解码为人类可读的字符串?

1 个答案:

答案 0 :(得分:0)

TextDecoder可能正在查看数字的原始二进制数据,然后将其转换为UTF-8字符串。 C / C ++有这种行为。如果要将其转换为人类可读的字符串,可以使用Array.join或类似字符串将其转换为字符串。示例代码:



arrayBuffer = [18, 32, 121, 49, 72, 220, 122, 210, 56, 86, 171, 17, 36, 81, 52, 151, 102, 70, 216, 254, 207, 175, 161, 253, 216, 30, 99, 35, 30, 121, 226, 96, 86, 94];
var readableString = "[" + arrayBuffer.join(", ") + "]";
console.log(readableString)




相关问题