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)