2013-11-01 6 views
-3

Я использую узловое полотно;nodejs canvas Slowbuffer to string

.... 
var content = canvas.toBuffer(); 
var length=content.length; 
console.log(content); 

результат:

<SlowBuffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 30 00 00 00 30 08 06 00 00 00 57 02 f9 87 00 00 00 06 62 4b 47 44 00 ff 00 ff 00 ff a0 bd a7 93 ...> 

И

var buf=new SlowBuffer(length); 
buf.write(content.toString()); 
console.log(buf); 

результат:

<Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 00 28 00 28 00 00 ff db 00 43 00 08 06 06 07 06 05 08 07 07 07 09 09 08 0a 0c 14 0d 0c 0b 0b 0c 19 12 13 0f 14 ...> 

Они не равны :(, поэтому, когда я храню его в Redis, я могу Не возвращайся,

+0

Пожалуйста, используйте блоки кода для кода/вывода. Также проверьте предварительный просмотр, если он так, как вы хотите. – user568109

+0

Вы уверены, что результаты верны. Они выглядят беспорядочно. – user568109

ответ

-1

Вы не можете просто вызвать Buffer.toString и предположить, что все будет в порядке, поскольку стандартная кодировка - utf8. Если вы хотите кодировать двоичные данные, вам нужна кодировка base64.