如何解码“二进制”编码的string到原始二进制缓冲区?
NodeJS的文档强调, binary
string编码是非常不鼓励的,因为它将在未来某个时候被丢弃。
不过,我试图用node-imagemagick
模块生成图像缩略图,它只能输出binary
编码的string。
我的最终目标是将生成的缩略图作为BLOB提交到SQLite3数据库(我正在使用node-sqlite3
),所以我想我需要缩略图作为二进制Buffer对象。
如何直接解码node-imagemagick
的binary
编码输出到一个原始的二进制缓冲区(不只是一个包含binary
编码的string的缓冲区)? 我不喜欢使用base64
…
var buffer = new Buffer(binaryString, "binary");
经testing:
$ node > var binaryString = "\xff\xfa\xc3\x4e"; > var buffer = new Buffer(binaryString, "binary"); > console.log(buffer); <Buffer ff fa c3 4e>
我不使用节点的缓冲区进行编码。
你可以试试iconv-lite
( https://www.npmjs.com/package/iconv-lite ),如果这个开始失败:
var encode = require("iconv-lite"); var binaryString = "\xff\xfa\xc3\x4e"; var buffer = encode(binaryString, "binary"); console.log(buffer); // Prints <Buffer ff fa c3 4e>