无法获取Uint8Array字节

问题描述 投票:2回答:2

我通过 var uni = new Uint8Array([255, 216, 255, 0, 0, 0, 0, 0]) 创建了一个数组缓冲区但是当我尝试使用map uni.map(byte => byte.toString(16)) 返回字节时它返回 Uint8Array(8) [0, 0, 0, 0, 0, 0, 0, 0]

javascript
2个回答
2
投票

Uint8Array只能包含8位无符号整数(0到255之间的整数)。当您使用Uint8Array.protoype.map()方法时,尝试将每个元素转换为字符串,它们会超出[0,255]范围并设置为0。

如果你想将它们转换成字符串,你首先将Uint8Array转换为普通的Array,然后使用Array.prototype.map()

const array = Array.from(uni)
array.map(byte => byte.toString(16))

4
投票

你必须先将TypedArray转换为ArrayArray.prototype.slice.call(uni).map(byte=>byte.toString(16))

© www.soinside.com 2019 - 2024. All rights reserved.