2012-12-11 3 views
6

Die NodeJS docs betonen, dass die binary String-Codierung stark abgeraten wird, da es irgendwann in der Zukunft fallen gelassen wird.Wie "binäre" codierte Zeichenfolge in rohen binären Puffer decodieren?

Ich versuche jedoch, Bildminiaturansichten mit dem Modul node-imagemagick zu generieren, das nur binary codierte Zeichenfolgen ausgeben kann.

Mein Endziel ist es, das generierte Thumbnail als BLOB in eine SQLite3 Datenbank zu schicken (ich benutze node-sqlite3), also dachte ich, ich brauche das Thumbnail als binäres Buffer Objekt.

Wie dekodiere ich direkt die binary codierte Ausgabe von node-imagemagick in einen rohen binären Puffer (nicht nur ein Puffer, der eine binary codierte Zeichenfolge enthält)? Ich bin nicht scharf auf base64 mit ...

Antwort

3
var buffer = new Buffer(binaryString, "binary"); 

Getestet mit:

$ node 
> var binaryString = "\xff\xfa\xc3\x4e"; 
> var buffer = new Buffer(binaryString, "binary"); 
> console.log(buffer); 
<Buffer ff fa c3 4e> 
+0

Oh. Das war einfach. Ich habe die Dokumente falsch interpretiert ... – Joshua

+1

Sie haben die Dokumente nicht falsch interpretiert. Sie geben eindeutig an, dass die "binäre" Codierung entfernt wird! Ich laufe auch gegen das gleiche Problem, während ich die Ausgabe von ImageMagick zum Speichern in MongoDB aufzeichne. "Binär" ist die einzige Kodierung, die anscheinend funktioniert, um STDOUT in der Datenbank korrekt zu erhalten. Was ist die Alternative? –

+0

@WouterHuysentruit ein Problem mit dem Bibliotheksautor auf Github auslösen, um ihr Modul zu aktualisieren, um Puffer zu verwenden ... wird es sicher gelöst, bevor '" binary "' vom Knoten entfernt wird? – Esailija

0

Ich benutze keine Knotens Buffer für die Codierung.

können Sie versuchen, iconv-lite (https://www.npmjs.com/package/iconv-lite) sollte dies jemals zu versagen beginnen:

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> 
Verwandte Themen