Определение и изменение кодировки текстового файла

Недавно столкнулся с такой задачей: С некоторого ресурса загружается текстовый файл. Кодировка неизвестна (получаю такие символы: �), необходимо изменить кодировку на UTF-8. Я пробовал использовать jschardet для определения кодировки, iconv-lite для ее изменения. Ничего не помогло, пробовал по разному загружать файл и это тоже не дало результатов.

Получаю файл так:

  fetch("https://vk.com/doc539843744_599727351",{'Content-Type': 'text/html; charset=utf-8'})
  .then(res => res.text()).then(res => {
    console.log(res)
  });

Хотелось бы привести файл в читаемое состояние, но никак не выходит.


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

Автор решения: 2ip

У меня получилось решить проблему при помощи iconv-lite и jschardet следующим образом:

  fetch("https://vk.com/doc539843744_599727351",{'Content-Type': 'text/html; charset=utf-8'})
  .then(res => res.buffer()).then(txtbuffer => {
    var type = jschardet.detect(txtbuffer);
    var str = iconv.decode(txtbuffer, type.encoding);
    console.log(str)
  })

Проверил с разнообразными кодировками, вроде работает.

→ Ссылка