如何在Node.js中将字符串转换为Uint8Array类型

16
  • 如何在node中将字符串转换为Uint8Array
  • 我平时不用JavaScript开发,这让我很困扰。他们提供了一个Uint8Array.toString()的转换方法但没有反向的方法。有人知道一种简单的方法可以避免自己创建解析器吗?
  • 我看过其他一些答案,但它们似乎没有解决这个特定的类类型问题。
4个回答

21

9
Uint8Array.from(text.split('').map(letter => letter.charCodeAt(0)));

或者(看起来约快18%):
Uint8Array.from(Array.from(text).map(letter => letter.charCodeAt(0)));

注意:这些只适用于ASCII,因此所有字母都对256取模,所以如果您尝试使用俄文文本,它将无法工作。

答案与代码解释通常比仅提供代码更好,这样可以避免其他人需要进行解释。另外,text.split('') 不适用于 Unicode 字符串;请参见 如何从字符串中获取字符数组? - Heretic Monkey
你在我编辑答案的时候回复了。 确实,这种方法不适用于Unicode,但是它非常简单快捷,可能正是他正在寻找的。 - Octo Poulos

3

为什么不直接使用:

const resEncodedMessage = new TextEncoder().encode(message)

-2

当我获取一个字符串时,这是我的做法

   var myString = "[4,12,43]"
   var stringToArray = myString.replace('[', '').replace(']', '').split(',');
   var stringToIntArray = Uint8Array.from(stringToArray );
   console.log(stringToIntArray);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接