我正在接收如下所示的流中的图像,该图像在接收之前已被{imageBuffer.toString('utf8'))
转换为utf8字符串,但是当我尝试使用以下数据创建缓冲区时,该缓冲区似乎是不同的,而不是能够重新创建图像。
msg =����ExifII*��DuckyF��,Photoshop 3.08BIM%��Adobed��↵→→→→↵↵↵g��g����→!! 1AQa“ q �2��B#��R3ђ��$T�bCSD��%EU�r�cs��!1QA����''a2q�B#�??65�]����jF( mR。$ Pm。*a.F.H7҄.7D。(。
console.log(typeOf msg)=>字符串
到目前为止,我已经尝试过:
let buffer = Buffer.from(msg, 'utf8');
let writable = require('fs').createWriteStream( '/home/test.jpg);
writable.write(buffer);
writable.end();
问题是:无法复制相同的图像。输出缓冲区的大小不同于图像的输入缓冲区。
答案 0 :(得分:0)
使用
let buffer = Buffer.from(new Uint8Array(msg));
...
答案 1 :(得分:0)
请勿将二进制文件作为utf-8字符串发送。尝试base64:
imageBuffer.toString('base64')
和:
let buffer = Buffer.from(msg, 'base64');