Использую Node.js для
загрузки валют с центробанка.
Гружу xml
по ссылке, в которой есть русскоязычные названия валют. Ни как не могу получить эти названия в нормальном виде, как в Google Chrome
.
В Fiddler 4
происходит аналогичная ситуация.
const request = require('request');
const Buffer = require('buffer').Buffer;
const iconv = require('iconv-lite');
const utf8 = require('utf8');
request(URL, (err, result, body) => {
let a = result.body;// ���������� ���
let b = body;// ���������� ���
let c = iconv.encode(iconv.decode(new Buffer(body, 'binary'), 'windows-1251'), 'utf8').toString();// ээээээээээ эээ
let g = utf8.encode(body);// ���������� ���
});
Английские символы отображаются корректно, а русские нет.
На месте кракозябр в комментариях должно быть: Молдавский лей
.
Вариант с let c ..
почти верный. Для работы с бинарными данными вместе с url
, надо передать значение encoding: null
. В итоге примерно так, должно выглядеть:
const request = require('request');
const iconv = require('iconv-lite');
let config = {
url: 'http://www.cbr.ru/scripts/XML_valFull.asp',
encoding: null
}
request(config, (err, result, body) => {
let c = iconv.encode(iconv.decode(body, 'windows-1251'), 'utf8').toString();
console.log(c);
})
На устройстве хранятся зашифрованные xhtml файлы (+ не зашифрованныеcss,