Загрузка файла на NodeJS с использованием opensubtitles API - PullRequest
0 голосов
/ 21 декабря 2018

Я новый пользователь для NodeJS и JS.Я использую NodeJS для создания своего проекта Web API.Мой проект с использованием opensubtitles API.OpenSubtitles API дайте мне URL файла. * Gz.Я хочу сохранить файл в локальную папку по этому URL.Я попробовал несколько методов.Но я не был успешным.Я скачал файл в локальную папку, но некоторые языковые символы повреждены.

Пример файла URL:

https://dl.opensubtitles.org/en/download/src-api/vrf-19ed0c61/filead/1954767944.gz

Если я загружаю его с помощью веб-браузера, символы отображаются правильно.

Мой пример кода:

const out = fs.createWriteStream('out.srt'); 
request(subtitle.getSubDownloadLink()).pipe(zlib.createGunzip()).pipe(out);

1 Ответ

0 голосов
/ 21 декабря 2018

Проблема в выводе кодировки (по умолчанию utf8)

Таким образом, вам нужно преобразовать потоковый файл из iso-8859-5 (кодировка файла в gz) в utf8.

Это работает:

const fs = require('fs')
const request = require('request')
const zlib = require('zlib')
const iconv = require('iconv-lite');

var converterStream = iconv.decodeStream('iso-8859-5');

const out = fs.createWriteStream('out.srt');
request(`https://dl.opensubtitles.org/en/download/src-api/vrf-19ed0c61/filead/1954767944.gz`)
  .pipe(zlib.createGunzip())
  .pipe(converterStream)
  .pipe(out);
...