如何在nodejs中将字符串转换为Uint8Array类型

Arr*_*uff 16 javascript node.js

  • 如何将节点中的字符串转换为Uint8Array
  • 我通常不使用 Javascript 进行开发,这让我抓狂。他们提供了一种转换Uint8Array.toString(),但不是相反。有谁知道我在不创建自己的解析器的情况下执行此操作的简单方法?
  • 我已经看到了一些其他答案,但它们似乎没有解决这个特定的类类型

Pat*_*rts 22

您可以使用Buffer.from(string[, encoding])。该类从v4.x开始就在 Node 中Buffer实现了该接口。您还可以选择指定用于双向进行字符串处理的编码,即.Uint8Arraybuffer.toString([encoding])


Oct*_*los 11

Uint8Array.from(text.split('').map(letter => letter.charCodeAt(0)));
Run Code Online (Sandbox Code Playgroud)

或者(看起来快了大约 18%):

Uint8Array.from(Array.from(text).map(letter => letter.charCodeAt(0)));
Run Code Online (Sandbox Code Playgroud)

注意:这些仅适用于 ASCII,因此所有字母均以 256 为模,因此如果您尝试使用俄语文本,它将不起作用。


Siy*_*mdi 5

为什么不简单地使用:

const resEncodedMessage = new TextEncoder().encode(message)
Run Code Online (Sandbox Code Playgroud)