📜  二进制到 ascii javascript (1)

📅  最后修改于: 2023-12-03 14:49:01.934000             🧑  作者: Mango

将二进制转化为 ASCII 的 JavaScript

在计算机科学中,二进制是一个仅由 0 和 1 组成的数字系统。在传输和存储数据时,经常需要将文本转换为二进制格式。在某些情况下,需要将这些二进制数据还原为原始文本 —— 这就是将二进制转化为 ASCII 的过程。下面将介绍 JavaScript 中实现这一过程的方法。

方法一:使用 String.fromCharCode()

JavaScript 中的 String.fromCharCode() 函数可以根据 ASCII 码值转换为相应的字符。因为每个字符都有一个唯一的 ASCII 码值,所以可以用此函数将二进制数据还原为其原始 ASCII 字符串。

下面是一个字符串 "01001000 01100101 01101100 01101100 01101111" 的示例。此字符串是二进制格式的 "Hello"

const binaryString = "01001000 01100101 01101100 01101100 01101111";
const parts = binaryString.split(" ");
let asciiString = "";
for (let i = 0; i < parts.length; i++) {
  const binary = parseInt(parts[i], 2);
  const char = String.fromCharCode(binary);
  asciiString += char;
}
console.log(asciiString);

返回的值是字符串 "Hello"

方法二:使用 Buffer 对象

Node.js 有一个内置的 Buffer 对象,可以用于处理二进制数据。可以使用 Buffer.from() 函数创建一个包含二进制数据的缓冲区,然后使用 .toString() 函数将其转换为 ASCII 字符串。

下面是一个示例。这里将字符串 "01001000 01100101 01101100 01101100 01101111" 的二进制形式转换为 ASCII 字符串。

const binaryString = "01001000 01100101 01101100 01101100 01101111";
const parts = binaryString.split(" ");
const buffer = Buffer.alloc(parts.length);
for (let i = 0; i < parts.length; i++) {
  buffer[i] = parseInt(parts[i], 2);
}
const asciiString = buffer.toString("ascii");
console.log(asciiString);

返回的值是字符串 "Hello"

方法三:使用 TextDecoder

TextDecoder 对象是一个内置的 JavaScript 对象,可以将二进制数据转换为 UTF-8、ISO-8859-1 等格式的字符串。可以使用以下代码将二进制数据转换为 ASCII 字符串。

const binaryString = "01001000 01100101 01101100 01101100 01101111";
const parts = binaryString.split(" ");
const bytes = new Uint8Array(parts.length);
for (let i = 0; i < parts.length; i++) {
  bytes[i] = parseInt(parts[i], 2);
}
const decoder = new TextDecoder("ascii");
const asciiString = decoder.decode(bytes);
console.log(asciiString);

输出的值也是字符串 "Hello"

结论

以上三种方法都可以将二进制数据转换为 ASCII 字符串。选择哪种方法取决于各种因素,例如您正在使用的平台,数据的来源以及您的性能需求。现在,您可以在自己的代码中使用这些方法来处理二进制数据了。