Пишу http запрос для получения файла отчёта. В ответе приходят данные с некорректной кодировкой, не распознаётся кириллица. Подскажите, как это можно исправить?
Вам нужно декодировать имя файла с помощью метода decodeURIComponent().
Мы у себя используем следующий код на TypeScript для декодирования имени файла:
Заметьте что ответ от сервера приходит в виде потока байт, а если точнее arrayBuffer. Для сохранения файла можно использовать объекты File или Blob и сторонние библиотеки, например file-saver.
Мы в typescript используем следующий код:
var blob = new Blob([response.body, { type: 'application/pdf; charset=utf-8' }]);
saveAs(blob, fileName);
var fileName = decodeURIComponent(response.headers["x-filename"]);
var FileSaver = require('file-saver');
var blob = new Blob([response.data, {type: "application/pdf; charset=utf-8"}]);
FileSaver.saveAs(blob, fileName);
Но, к сожалению, сохраняется пустой PDF, хотя в консоли получается вывести данные ответа без декодирования.
Подскажите, нужно ли указывать дополнительные заголовки в запросе или в чём может быть ошибка?