簡體   English   中英

base64或十六進制編碼的Int8二進制字符串到Int32Array

[英]base64 or hex encoded Int8 binary string to Int32Array

我有一個必須在ws websocket上傳播的二進制字符串(我不能使用websocket.io),所以它是JSON.stringified。 例如var msg.data = data.toString('base64')

另一方面,我不希望該數據以字節寬的二進制形式返回,而是以32位整數的數組形式返回。 例如,如果二進制數據要輸入[0,0,0,1],我想輸出[1]。 每個輸出元素為4個字節。

如果我只是直接使用二進制字符串,則可以new Int32Array(data)並且我很高興。 結果是原始長度的1/4,每個32位元素由4個原始字節寬元素組成。

但是,當我對其進行編碼后,然后使用var data = Buffer.from(msg.data, 'base64')進行解碼,然后new Int32Array(data)與原始長度相同,並且每個32字節元素都由一個原始的8個字節元素。 Int32Array.from(data)作用相同。

我沒有通過搜索找到任何答案,每個人似乎都可以使用字節寬的數據。

。緩沖

我忘記了.buffer。

new Int32Array(data.buffer)可以完美工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM