📅  最后修改于: 2023-12-03 14:53:46.992000             🧑  作者: Mango
在 JavaScript 中,将二进制转换为字符串有多种方法,下面我们将介绍三种常用的方法。
atob()
函数atob()
函数可以将 base64 编码的字符串解码为二进制数据,我们可以在此基础上进行操作。
const binary = "01101000 01100101 01101100 01101100 01101111";
const binaryString = binary.split(" ").map(function(bin) {
return String.fromCharCode(parseInt(bin, 2));
}).join("");
console.log(binaryString);
// 输出:hello
binary
。split()
函数将其分割为数组,每个数组元素表示一个二进制字符。map()
函数将每个二进制字符转换为对应的 ASCII 码,并将其存储在数组中。join()
函数将数组中所有的 ASCII 码合并为一个字符串。注意:此方法仅适用于 ASCII 码字符,如果要将非 ASCII 码字符转换为字符串,可以使用方案 2。
TextDecoder()
函数TextDecoder()
函数是在 ECMAScript 2015 中引入的,可以将二进制数据解码为字符串。
const binary = new Uint8Array([104, 101, 108, 108, 111]);
const decoder = new TextDecoder('utf8');
const binaryString = decoder.decode(binary);
console.log(binaryString);
// 输出:hello
Uint8Array
数组 binary
,其中包含了字符 hello
的二进制表示形式。TextDecoder()
函数创建了一个解码器对象。decode()
函数将二进制数据解码为字符串。如果您需要将非 ASCII 码字符(如中文、日文等)转换为字符串,可以使用自定义函数。
function binaryToString(binary) {
const bytes = binary.match(/.{1,8}/g).map(function(bin) {
return parseInt(bin, 2);
});
const charArray = bytes.filter(function(byte) {
return byte !== 0;
}).map(function(byte) {
return String.fromCharCode(byte);
});
return charArray.join('');
}
const binary = "11100100 10111000 10101100 11100100 10111000 10101100";
const binaryString = binaryToString(binary);
console.log(binaryString);
// 输出:世界
binaryToString()
,用于将二进制字符串转换为字符串。filter()
函数过滤掉值为 0 的字节,保留实际字符对应的字节。map()
函数将所有字节转换为对应的字符,并将其存储在数组中。join()
函数将数组中所有字符合并为一个字符串。以上就是 JavaScript 中将二进制转换为字符串的三种常用方法,您可以根据实际需求选择其中一种。