如何解码“二进制”编码的string到原始二进制缓冲区?

NodeJS的文档强调, binarystring编码是非常不鼓励的,因为它将在未来某个时候被丢弃。

不过,我试图用node-imagemagick模块生成图像缩略图,它只能输出binary编码的string。

我的最终目标是将生成的缩略图作为BLOB提交到SQLite3数据库(我正在使用node-sqlite3 ),所以我想我需要缩略图作为二进制Buffer对象。

如何直接解码node-imagemagickbinary编码输出到一个原始的二进制缓冲区(不只是一个包含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-litehttps://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>