gpt4 book ai didi

javascript - Node.js 中的二进制字符串到缓冲区

转载 作者:行者123 更新时间:2023-12-01 00:14:02 26 4
gpt4 key购买 nike

我试图通过将字符流解析为 UTF-16 将 01 的字符串转换为等效的 Buffer编码。

例如:

var binary = "01010101010101000100010"

结果将是以下缓冲区

<Buffer 55 54>

请注意 Buffer.from(string, "binary") 无效,因为它创建一个缓冲区,其中每个单独的 01被解析为它自己的拉丁一字节编码字符串。来自 Node.js 文档:

'latin1': A way of encoding the Buffer into a one-byte encoded string (as defined by the IANA in RFC 1345, page 63, to be the Latin-1 supplement block and C0/C1 control codes).

'binary': Alias for 'latin1'.

最佳答案

  • 使用 "".match 查找所有 16 位组。
  • 使用 parseInt 将二进制字符串转换为数字
  • 创建一个 Uint16Array 并将其转换为 Buffer

在 Node 10.x 上测试

function binaryStringToBuffer(string) {
const groups = string.match(/[01]{16}/g);
const numbers = groups.map(binary => parseInt(binary, 2))

return Buffer.from(new Uint16Array(numbers).buffer);
}

console.log(binaryStringToBuffer("01010101010101000100010"))

关于javascript - Node.js 中的二进制字符串到缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59889355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com