Node.js中如何将bit string转换为base64编码?
二进制位字符串转Base64(Node.js环境实现)
实现思路
完全可以先将二进制位串转换为Buffer再完成Base64转码,这是最简便的原生实现方案,不需要引入任何第三方模块,仅用Node.js内置API即可完成:
- 第一步:校验输入合法性,确认仅包含0、1字符
- 第二步:补齐二进制位串长度到8的整数倍(不足时末尾补0),保证可以完整分割为单字节(8位为1字节)
- 第三步:按每8位为一组拆分位串,将每组二进制值转为十进制字节数值,生成字节数组
- 第四步:用字节数组生成Node.js原生Buffer实例,直接调用
toString('base64')方法即可得到目标编码结果
完整实现代码
function bitStringToBase64(bitStr) { // 输入合法性校验 if (!/^[01]+$/.test(bitStr)) { throw new Error('输入不是合法的二进制位字符串,仅允许包含0和1'); } // 计算需要补齐的0的个数,保证总长度是8的倍数 const padLength = (8 - (bitStr.length % 8)) % 8; const paddedBitStr = bitStr + '0'.repeat(padLength); const byteArray = []; // 按8位拆分后转字节数值 for (let i = 0; i < paddedBitStr.length; i += 8) { const byteBinary = paddedBitStr.slice(i, i + 8); byteArray.push(parseInt(byteBinary, 2)); } // 转Buffer后输出base64编码 return Buffer.from(byteArray).toString('base64'); } // 传入你提供的示例输入测试 const inputBitStr = '100110110101000110100011011001100010110100011011001100100110100011000001100000110000011000001100001001010100111110000011001111100101010011111010011100010110001001001001100000110100111010010100111110000111001000100000110001001000101100111110011001001001101011010001011001001101001010000011000100100100110000011010011'; console.log(bitStringToBase64(inputBitStr));
示例输入输出结果
运行上述代码后,你给出的输入对应的Base64编码结果为:u1GjZitbMmiMYMEBBAECil/AYfKVf0TsSSPBPeSX/DOEAMhJLzJElrUGUk0ogkQ1M
内容的提问来源于stack exchange,提问作者João Dias
相关产品推荐
相关产品推荐

