JavaScript 如何将字节数组转换为字符串
在本文中,我们将学习将给定的字节数组转换为字符字符串的方法。字节数组是一个包含以无符号整数形式编码数据的数组。
它不能直接使用。我们必须对其进行解码以获取有意义的数据。本文将演示如何将字节数组转换为一些有意义的信息。
方法:
将字节数组转换为字符串的各种方法如下:
- 使用WebAPI的TextDecoder.decode()方法
- 使用Buffer和toString()方法
- 使用JavaScript的string.fromCharCode()方法
方法1:使用WebAPI的TextDecoder.decode()方法
TextDecoder API中的decode()方法用于将字节流作为输入,发出代码点流。TextEncoder decode()方法接受一个包含编码数据和选项对象的ArrayBuffer,并返回原始字符串(即解码后的字符串)。
语法:
decoder.decode( buffer, options );
参数:
- buffer: 它是一个包含编码数据的ArrayBuffer、Dataview或TypedArray实例。
- options: 它是一个可选参数,包含一些属性的对象。
- stream: 它是一个布尔值。如果数据以块的方式处理,则为true;如果数据不是分块的(默认值为false)。
返回值:
它解码缓冲区中的输入,并返回解码后的字符串。
示例: 在此示例中,我们将使用TextDecoder.decode()方法从Uint8Array实例创建一个字符串。
Javascript
// Creating new byte array using
// Uint8Array instance
let byteArray = new Uint8Array([
74, 97, 118, 97, 83, 99, 114, 105, 112, 116,
]);
// Creating textDecoder instance
let decoder = new TextDecoder("utf-8");
// Using decode method to get string output
let str = decoder.decode(byteArray);
// Display the output
console.log(str);
输出
JavaScript
方法2:使用Buffer和toString()方法
缓冲区 是Node.js中的Buffer类的实例。缓冲区用于处理二进制原始数据。
语法:
let arr = new Buffer([16, 32, 48, 64]);
JavaScript Array toString() 方法返回数组元素的字符串表示。
语法:
arr.toString();
示例: 在这个示例中,我们实现了Buffer和toString()方法来将字节数组转换为字符串。
Javascript
// Creating new input array buffer
let byteArray = Buffer.from([
74, 97, 118, 97, 83, 99, 114, 105, 112, 116,
]);
// Converting buffer to string
let str = byteArray.toString();
// Display output
console.log(str);
输出
JavaScript
方法3:使用JavaScript的string.fromCharCode()方法
JavaScript的string.fromCharCode()方法用于从给定的序列创建一个字符串。
语法:
String.fromCharCode(n1, n2, ..., nX);
示例: 在这个示例中,我们将使用 String.fromCharCode() 方法从给定的字节数组中获取字符串输出。
Javascript
// Input byte Array for
let byteArray = [
71, 101, 101, 107, 115, 102, 111,
114, 71, 101, 101, 107, 115,
];
// Iterating array using array.map method
let str = byteArray
.map((byte) => {
return String.fromCharCode(byte);
})
.join("");
// Dipslay the output
console.log(str);
输出
GeeksforGeeks