encode переводится как
закодировать. Эта функция берет javascript-строку и конвертирует ее в указаную кодировку, возвращая объект Buffer - массив фиксированого размера с набором байтов.
В твоем случае надо использовать
decode, причем, на вход надо подавать не строку, а именно что
буфер. На низком уровне это выглядит так:
// Код рабочий, можно запустить и проверить - должен вывести коректный русский текст
const iconv = require("iconv-lite");
const http = require("http");
http.get("http://forum.heroes35.net/", (res) => {
let chunks = [];
res.on("data", (chunk) => {
chunks.push(chunk);
});
res.on("end", (chunk) => {
let body = iconv.decode(Buffer.concat(chunks), "win1251");
console.log(body);
});
});
Но лучше, конечно, использовать потоковый интерфейс:
const iconv = require("iconv-lite");
const http = require("http");
http.get("http://forum.heroes35.net/", (res) => {
res.pipe(iconv.decodeStream("win1251")).collect((err, body) => {
if (err) throw err;
console.log(body);
})
});