JavaScript 如何将字节数组转换为字符串

JavaScript 如何将字节数组转换为字符串

在本文中,我们将学习将给定的字节数组转换为字符字符串的方法。字节数组是一个包含以无符号整数形式编码数据的数组。

它不能直接使用。我们必须对其进行解码以获取有意义的数据。本文将演示如何将字节数组转换为一些有意义的信息。

方法:

将字节数组转换为字符串的各种方法如下:

  • 使用WebAPI的TextDecoder.decode()方法
  • 使用Buffer和toString()方法
  • 使用JavaScript的string.fromCharCode()方法

方法1:使用WebAPI的TextDecoder.decode()方法

TextDecoder API中的decode()方法用于将字节流作为输入,发出代码点流。TextEncoder decode()方法接受一个包含编码数据和选项对象的ArrayBuffer,并返回原始字符串(即解码后的字符串)。

语法:

decoder.decode( buffer, options );
JavaScript

参数:

  • 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

输出

JavaScript
JavaScript

方法2:使用Buffer和toString()方法

缓冲区 是Node.js中的Buffer类的实例。缓冲区用于处理二进制原始数据。

语法:

let arr = new Buffer([16, 32, 48, 64]);
JavaScript

JavaScript Array toString() 方法返回数组元素的字符串表示。

语法:

arr.toString();  
JavaScript

示例: 在这个示例中,我们实现了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

输出

JavaScript
JavaScript

方法3:使用JavaScript的string.fromCharCode()方法

JavaScript的string.fromCharCode()方法用于从给定的序列创建一个字符串。

语法:

String.fromCharCode(n1, n2, ..., nX);  
JavaScript

示例: 在这个示例中,我们将使用 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); 
JavaScript

输出

GeeksforGeeks
JavaScript

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册