Преобразование буфера в шестнадцатеричную строку - PullRequest
0 голосов
/ 21 января 2020

Я хочу преобразовать буфер node JS в шестнадцатеричную строку. Очевидно, что я сначала погуглил, но ни одно из предложенных решений не сработало.

Например, в этот вопрос комментарий под принятым ответом говорит, что вы должны сделать это так:

let signature4 = Buffer.from(signature3.r, 'hex') + Buffer.from(signature3.s, 'hex') + Buffer.from(signature3.v, 'hex');

Но это дает:

TypeError [ERR_INVALID_ARG_TYPE]: The "value" argument must not be of type number. Received type number

Если я go для фактического ответа, который говорит мне сделать это так:

let signature4 = signature3.r.toString('hex') + signature3.s.toString('hex') + signature3.v.toString('hex');

Я получаю эту ошибку :

 RangeError: toString() radix argument must be between 2 and 36

Если я последую совету, приведенному в сообщении об ошибке, и введу число 16 следующим образом:

let signature4 = signature3.r.toString(16) + signature3.s.toString(16) + signature3.v.toString(16);

Я получу это сообщение об ошибке:

 TypeError [ERR_UNKNOWN_ENCODING]: Unknown encoding: 16

Если я вместо этого передам 16 как строку:

let signature4 = signature3.r.toString('16') + signature3.s.toString('16') + signature3.v.toString('16');

Я получу то же сообщение об ошибке:

 TypeError [ERR_UNKNOWN_ENCODING]: Unknown encoding: 16

Так каков текущий способ сделать это?

Я использую Node v10.18.1.

1 Ответ

0 голосов
/ 21 января 2020

Это работает для меня ... действительно ли ваш объект является буфером Node.js?

Buffer.from([255,254,0,1]).toString("hex") // ffee0001
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...