javascript - 将 utf8 字符串(图像)解码为 node.js 中的缓冲区/图像
问题描述
我正在接收流中的图像,如下所示(imageBuffer.toString('utf8'))
在接收之前转换为 utf8 字符串,但是当我尝试使用以下数据创建缓冲区时,缓冲区似乎不同并且无法重新创建图像。
msg = ����ExifII*��DuckyF��,Photoshop 3.08BIM%��Adobed����↵→→→→↵↵↵ ↵↵��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();
问题是:无法重现相同的图像。输出缓冲区大小与图像的输入缓冲区不同。
解决方案
不要将二进制作为 utf-8 字符串发送。尝试base64:
imageBuffer.toString('base64')
和:
let buffer = Buffer.from(msg, 'base64');
推荐阅读
- python - SQLite 查询在代码中引发语法错误,但在复制到 sqlite db 浏览器时工作正常
- docker - fluentd日志的格式
- postgresql - 将文件加载到 Postgres
- flutter - 围绕 CachednetworkImage 的 Gradle 构建错误 - Flutter
- python - 使用 .loc 和 OR 运算符返回 ValueError
- tensorflow - zero_output_for_mask RNN 后端参数在 Keras 中不存在
- django - Django中的搜索栏不起作用:未执行类似查询
- javascript - 在搜索栏中插入自动完成 HTML 建议
- amazon-web-services - 如何在没有 AWS CLI 或脚本的情况下在账户之间同步 AWS S3 存储桶?
- python - pd.Series 分配与 pd.IndexSlice 导致 NaN 值,尽管匹配索引