stringdecoder nodejs node new length from create array node.js

node.js - new - nodejs tostring



Convertir una cadena en un nodo de bĂșfer (4)

Estoy usando una biblioteca que en llamada de una función devuelve el toString de un búfer

El código exacto es

return Buffer.concat(stdOut).toString(''utf-8'');

Pero no quiero la versión de la cadena.

Solo quiero el buffer

Entonces, ¿cómo convertir la cadena de nuevo a búfer.

Algo como si

var bufStr = Buffer.concat(stdOut).toString(''utf-8''); //convert bufStr back to only Buffer.concat(stdOut).

¿Como hacer esto?

Traté de hacer

var buf = Buffer.from(bufStr, ''utf-8'');

Pero arrojar utf-8 no es una función. Cuando lo hago

var buf = Buffer.from(bufStr);

Lanza TypeError: esto no es una matriz escrita.

Gracias


Esto está funcionando para mí, podrías cambiar tu código así.

var responseData=x.toString();

a

var responseData=x.toString("binary");

y finalmente

response.write(new Buffer(toTransmit, "binary"));


Puede usar Buffer.from() para convertir una cadena en búfer. Más información sobre esto se puede encontrar here

var buf = Buffer.from(''some string'', ''encoding'');

por ejemplo

var buf = Buffer.from(bStr, ''utf-8'');


Tu puedes hacer:

var buf = Buffer.from(bufStr, ''utf8'');

Pero esto es un poco tonto, por lo que otra sugerencia sería copiar la cantidad mínima de código de la función llamada para permitirte acceder al búfer original. Esto puede ser bastante fácil o bastante difícil dependiendo de los detalles de esa biblioteca.


Nota: Solo reposteando el comentario de John Zwinck como respuesta.

Un problema podría ser que esté utilizando una versión anterior de Node (por el momento, no puedo actualizar, el código base se encuentra con v4.3.1 ). La solución simple aquí es, usando la forma en desuso:

new Buffer(bufferStr)