Проблема с кодировкой при парсинге сайта node js

При парсинге сайта вместо русских символов выдает вопросы.

enter image description here

Как я понял, на сайте кодировка windows-1251, а хотелось бы получить данные в виде UTF-8. При попытке конвертировать html код, вместо вопросов получаю буквы 'Э'.

enter image description here

как исправить данную проблему?

const axios = require('axios');
const cheerio = require('cheerio');
const utf8 = require('utf8');
let iconv = require('iconv-lite');

const url = 'https://4pda.ru/page/1/'
axios(url)
  .then(response => {
    const html = response.data
    const ruHtml = iconv.encode(iconv.decode(html, "win1251","win1251")).toString();
    console.log(ruHtml)
    const $ = cheerio.load(ruHtml)


    const pdaArticle = $('.QBMHLfg8HZf > article')
    console.log(pdaArticle.length)
    const pdaData = [];

    pdaArticle.each(function() {
      const title =$(this).find('.description > h2 > a').attr('title');
      const desc = $(this).find('.description > div >p').text();


      pdaData.push({
        title: title,
        desc: desc
      })
    })

    console.log(pdaData)

  })
  .catch(console.error);

Ответы (1 шт):

Автор решения: vsemozhebuty

Если я правильно понимаю, вам нужны не данные в UTF-8 (эту кодировку вы должны были бы определять, если бы записывали куда-то строку), а просто строка, декодированная из буфера в кодировке win1251. То есть вам нужно получить с сервера буфер и декодировать его, задав кодировку.

Попробуйте так:

axios(url, { responseType: "arraybuffer" })
  .then(response => {
    const ruHtml = iconv.decode(response.data, "win1251");
    // ...
→ Ссылка