Эта проблема немного сложнее, чем кажется на первый взгляд, так как вам нужно указать кодировку при преобразовании из расширенного ascii в строку. Например, Windows-1252, ISO-8859-1 и т. Д. Поскольку вы хотите использовать связанную таблицу, я предполагаю, что вы хотите использовать кодирование CP437 .
Чтобы преобразовать буфер в строку, вам нужен модуль, который сделает это за вас, преобразование из буфера (в заданной кодировке) в строку не тривиально, если буфер не находится в изначально поддерживаемой кодировке node.js. например, UTF-8, ASCII (только 7-битный!), Latin1 и т. д.
Я бы предложил использовать пакет iconv-lite , это преобразует многие типы кодирования. После того, как это установлено, код должен выглядеть следующим образом (каждый символ принимает значение от 0x00 до 0xFF и печатает закодированный символ):
const iconv = require('iconv-lite');
function hex_to_ascii(hexData, encoding) {
const buffer = Buffer.from(hexData, "hex");
return iconv.decode(buffer, encoding);
}
const testInputs = [...Array(256).keys()];
const encoding = "CP437";
console.log("Decimal\tHex\tCharacter")
for(let input of testInputs) {
console.log([input, input.toString(16), hex_to_ascii(input.toString(16), encoding)].join("\t"));
}