Массива кода символов был составлен через этот он-лайн сервис: http://www.mauvecloud.net/charsets/CharCodeFinder.html
new Buffer([1055, 1088, 1080, 1074, 1077, 1090, 32, 1052, 1080, 1088], 'utf-8').toString()
Но этот возвращает странные символы: @825B 8@
new Buffer('Привет Мир', 'utf-8').toString()
Это возвращает нормальный текст: Привет Мир
Вопрос: Как сделать так, чтобы buf.toString() вернул нормальный русский текст, а передача данных в Buffer было именно как массив кода символов?
Во-первых, синтаксис new Buffer() является deprecated начиная уже с 6 ноды, актуальным является вариант Buffer.from().
Во-вторых, во всех версиях он принимает массив байт, а не целых чисел, соответственно, все Ваши "1055" урезаются до байта.
В-третьих, коды Unicode и коды UTF-8 - это разные вещи. По ссылке от @AlexSazonov можно увидеть, как из первых получаются вторые.
Соответственно, чтобы получить буфер, соответствующий нужной строке, надо сформировать массив, содержащий именно UTF-8-коды символов этой строки (для строки "Привет Мир", это будет [208,159,209,128,208,184,208,178,208,181,209,130,32,208,156,208,184,209,128], где 208, 159 - это два байта, соответствующие символу "П", 209, 128 - символу "р" и т.д.). Как-то так:
Buffer.from([208,159,209,128,208,184,208,178,208,181,209,130,32,208,156,208,184,209,128]).toString(); // Привет Мир
К тому же, если в итоге Вам нужен не буфер, а таки строка, то можно и вовсе обойтись без буфера:
String.fromCharCode(1055, 1088, 1080, 1074, 1077, 1090, 32, 1052, 1080, 1088); // Привет Мир
Тут в качестве параметров метода fromCharCode надо передавать уже Unicode-коды символов.
Поскольку количество параметров fromCharCode является переменным, программно формировать вызов может показаться проблематичным, но тут поможет spread operator:
let codes = [1055, 1088, 1080, 1074, 1077, 1090, 32, 1052, 1080, 1088];
String.fromCharCode(...codes); // Привет Мир
Продвижение своими сайтами как стратегия роста и независимости