在Node.js中如何将字节数组转换为编码后的UTF8格式
解决方案
Node.js 中与 Python bytes() 功能对标的原生接口是内置的 Buffer 类,使用它即可快速完成字节数组的转换,操作方法如下:
- 直接调用
Buffer.from()传入目标字节数组,即可得到等效的字节序列对象,和 Python 中bytes(byte_arr)的效果完全一致 - 如果需要得到你示例中带
\x转义标识的字符串格式,额外对字节做遍历格式化即可
代码示例1:基础转换为UTF8字符串
const byteArr = [0, 1, 66, 119, 208]; // 生成字节序列对象,等效Python的bytes(byte_arr) const buffer = Buffer.from(byteArr); // 转换为UTF8编码字符串 const utf8Str = buffer.toString('utf8'); console.log(utf8Str);
代码示例2:输出你要求的\x转义格式结果
如果需要完全匹配你给出的\x00\x01Bw\xd0输出格式,可以用以下实现:
const byteArr = [0, 1, 66, 119, 208]; const buffer = Buffer.from(byteArr); const escapedResult = Array.from(buffer).map(byte => { // 可打印的ASCII范围字符直接输出,其余字符转成\x前缀的十六进制表示 if (byte >= 32 && byte <= 126) { return String.fromCharCode(byte); } return '\\x' + byte.toString(16).padStart(2, '0'); }).join(''); console.log(escapedResult); // 输出:\x00\x01Bw\xd0
Buffer本身支持任意编码转换、字节截取、拼接等操作,完全可以覆盖你对应Python bytes的所有使用场景。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

