📜  字符串到字节数组 javascript (1)

📅  最后修改于: 2023-12-03 15:09:21.602000             🧑  作者: Mango

将字符串转换为字节数组的方法 - JavaScript

在 JavaScript 中,字符串是一种原始数据类型,但有时我们需要将其转换为字节数组,以进行各种操作,如对数据进行加密、解密、压缩等。本文将介绍如何将字符串转换为字节数组,包括以下几种方法:

使用 TextEncoder

使用 TextEncoder API 可以将字符串编码为 Uint8Array 类型的字节数组。

const encoder = new TextEncoder();
const data = encoder.encode('hello world');
console.log(data);
// Uint8Array(11) [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]

以上代码将字符串 "hello world" 转换为一个长度为 11 的字节数组。

使用 Buffer

Node.js 中可以使用 Buffer 类将字符串转换为字节数组。

const buf = Buffer.from('hello world');
console.log(buf);
// <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>

以上代码将字符串 "hello world" 转换为一个长度为 11 的字节数组。

使用 TextDecoder

使用 TextDecoder API 可以将字节数组解码为字符串。

const decoder = new TextDecoder();
const data = new Uint8Array([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]);
const str = decoder.decode(data);
console.log(str);
// "hello world"

以上代码将一个长度为 11 的字节数组解码为字符串 "hello world"。

使用 for 循环

使用 for 循环可以将字符串转换为字节数组。

const str = 'hello world';
const len = str.length;
const data = new Uint8Array(len);
for (let i = 0; i < len; i++) {
  data[i] = str.charCodeAt(i);
}
console.log(data);
// Uint8Array(11) [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]

以上代码将字符串 "hello world" 转换为一个长度为 11 的字节数组。

结论

本文介绍了几种将字符串转换为字节数组的方法,包括 TextEncoder、Buffer、TextDecoder 和 for 循环。使用这些方法之一可以将字符串转换为字节数组,以便于进行各种操作。