2016-01-15 2 views
1

Я использую node.js.Преобразование строки, содержащей двоичный шестнадцатеричный код в ASCII в буфер

У меня есть эта строка msg_str со следующим содержанием "0102ab00aabb00". Я хочу преобразовать это строковое содержимое (ASCII, представляющее двоичный шестнадцатеричный), и сохранить его в буфере таким образом, чтобы содержимое буфера выглядело как <01 02 ab 00 aa bb 00 >.

Некоторые предварительные коды, которые я написал, которые не работают должным образом;

msg_str = "0102ab00aabb00"; 
buffer_binary = new Buffer(msg_str); 
console.log(msg_str); 
console.log(buffer_binary); 

Выход консольной buffer_binary является 30 31 30 32 61 62 30 30 61 61 62 62 30 30. Правильный вывод должен быть 01 02 ab 00 aa bb 00.

+0

Возможный дубликат [Node.js преобразовать шестнадцатеричное число в ByteArray,] (http://stackoverflow.com/questions/18880301/node-js-convert-hexadecimal-number- to-bytearray) –

ответ

6

Вы должны сообщить конструктору Buffer, что ваша строка в шестнадцатеричной форме. К счастью, это довольно легко :)

msg_str = "0102ab00aabb00"; 
buffer_binary = new Buffer(msg_str, "hex"); // specify hex 
console.log(msg_str); // logs 0102ab00aabb00 
console.log(buffer_binary); // logs <Buffer 01 02 ab 00 aa bb 00> 
+0

есть ли способ сделать это в браузере? – chovy

Смежные вопросы