2012-01-16 11 views
11

Estoy convirtiendo mi código de Node.js en JavaScript de los navegadores, pero tengo un problema con los Buffers en node.js. ¿Cómo puedo usarlos en Javascript?Convertir nodejs 'Buffer en navegadores' javascript

He aquí un ejemplo:

new Buffer("foo", encoding='utf8') 
<Buffer 66 6f 6f> 

necesito para transformar [66, 6f, 6f] en javascript para "foo" y viceversa. ¿Cómo puedo hacer eso? NOTA: esto debe hacerse sin Node.js.

Respuesta

0

Para convertir de nuevo a la cadena, utilice el método toString del búfer con la codificación suministrada.

http://nodejs.org/docs/latest/api/buffers.html#buffer.toString

var buffer = new Buffer("foo", "utf8"); 
var str = buffer.toString("utf8"); 
str === "foo"; 
+0

No, no, necesito una alternativa a Buffer(). Gracias de todos modos :) Necesito ejecutarlo en el Javascript de los navegadores. – Fermuch

+1

Tenga en cuenta que si el 'Buffer' termina con una secuencia UTF-8 incompleta que' toString() 'no es suficiente, terminará con un último carácter roto. (Esto puede suceder si está utilizando el búfer para leer en una secuencia con contenido de texto desconocido). En este caso, la solución es usar en su lugar ['StringDecoder'] (http://nodejs.org/api/string_decoder.html) – hippietrail

+0

Bump +1, esta información me resultó útil en Node. – JohnnyCoder

5

no hay soporte directo para el búfer en JavaScript basado en el navegador, y no estoy al tanto de cualquier biblioteca de compatibilidad que implementa la API de búfer (todavía).

La funcionalidad equivalente en el navegador es proporcionada por TypedArrays. Usted puede aprender acerca de ellos aquí:

Al trasladar una implementación basada en Buffer Node tener JavaScript basado en navegador, encontré estas respuestas votos:

+1

Ahora hay una [biblioteca de compatibilidad de '' Buffer' del navegador] (http://stackoverflow.com/a/12486045/201952). – josh3736

Cuestiones relacionadas