首页 > 解决方案 > 如何在 Node.js 中将字符串转换为字节数组?

问题描述

为了告诉 NetworkManager 使用 Node.js 和node-dbus库在 D-Bus 上创建一个 Wi-Fi 接入点,我需要提供一个 SSID 作为字节数组。由于 Node.js 没有来自客户端 JavaScript 的 Blob 类,我的理解是我需要为此使用 Buffer ,但它不起作用。

我可以使用以下代码成功地将字节数组转换为字符串:

  let bytes = new Uint8Array(ssidBytes);
  let string = new TextDecoder().decode(bytes);

如何反转它以从字符串中获取字节数组?

我试过了:

  let ssidBytes = Buffer.from(ssid);

我试过了:

  let ssidBytes = [];
  for (let i = 0; i < ssid.length; ++i) {
    ssidBytes.push(ssid.charCodeAt(i));
  }

假设我的代码(或我正在使用的库)中没有另一个错误,这些似乎都没有达到预期的效果。

有关更多背景信息,请参阅https://github.com/Shouqun/node-dbus/issues/228https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/663

谢谢

标签: node.jsdbus

解决方案


执行相同操作的更紧凑的解决方案:

const ssid = 'my-ap';
const ssidByteArray = Array.from(Buffer.from(ssid));

推荐阅读