Преобразование кодировки Iconv в Node

Я использую Iconv в Node.js для преобразования очищенного HTML (через запрос с кодировкой binary) из SHIFT_JIS в UTF-8:

request({url:url, encoding:'binary'}, function (error, res, html) {

   var iconv = new Iconv('SHIFT_JIS', 'UTF-8//TRANSLIT//IGNORE')

   var converted = iconv.convert(new Buffer(html,'binary')).toString('utf8')

})

Конверсия, которую я получаю, выглядит так: é«SnÌ\r\núêXj[J[ÍAVvÉÈ調ȫ³É\r\nå«ÈCpNgð^

Пока преконверсия выглядит так: ���[�J�b�g����X�j�[�J�[

Я пытался использовать encoding:null в запросе, но это тоже не сработало.


person alyx    schedule 10.07.2017    source источник
comment
Вы проверили кодировку контента, проверив res.headers ?   -  person mscdex    schedule 11.07.2017
comment
@mscdex : res.headers 'content-type': 'text/html; charset=Shift_JIS'   -  person alyx    schedule 11.07.2017
comment
Вы используете iconv или iconv-lite? Пробовали ли вы использовать другой модуль, чтобы убедиться, что он работает/аналогично не работает?   -  person mscdex    schedule 11.07.2017


Ответы (1)


Кодировка на самом деле работает, как указано выше, это была проблема с обработкой окончательного ответа вне функции запроса.

person alyx    schedule 10.07.2017