📅  最后修改于: 2023-12-03 14:49:01.934000             🧑  作者: Mango
在计算机科学中,二进制是一个仅由 0 和 1 组成的数字系统。在传输和存储数据时,经常需要将文本转换为二进制格式。在某些情况下,需要将这些二进制数据还原为原始文本 —— 这就是将二进制转化为 ASCII 的过程。下面将介绍 JavaScript 中实现这一过程的方法。
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"
。
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
对象是一个内置的 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 字符串。选择哪种方法取决于各种因素,例如您正在使用的平台,数据的来源以及您的性能需求。现在,您可以在自己的代码中使用这些方法来处理二进制数据了。