Определение и изменение кодировки текстового файла
Недавно столкнулся с такой задачей: С некоторого ресурса загружается текстовый файл. Кодировка неизвестна (получаю такие символы: �), необходимо изменить кодировку на 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)
})
Проверил с разнообразными кодировками, вроде работает.