使用 Hapi、axios 和 cheerio 时 JSON 输出中的错误编码

Wrong encoding in JSON output when working with Hapi, axios and cheerio

有一个网站(我不管理)

<meta charset="ISO-8859-1">

我正在用 cheerio、axios 构建一个 Hapi 服务器,从这个网站读取一些数据

这是网站显示我获取的数据的方式

<span class="name">DÓLAR BNA</span>

我在 cheerio 上加载 html 作为

const response = await axios.get(url2Get);
const $ = cheerio.load(response.data.toString('ISO-8859-1'),{ decodeEntities: false });
// process with cheerio and build/send json response

但我仍然在 JSON 输出中得到这个

我也试过安装包 iconv-lite 并执行

iconv.decode(Buffer.from(title), 'ISO-8859-1');

但还没有运气。感谢任何建议

将 axios 与配置选项 responseEncoding 设置为“binary”,如下所示:

const response = await axios.get(url2Get, {responseEncoding: 'binary'});
const $ = cheerio.load(response.data.toString('ISO-8859-1'),{ decodeEntities: false });
// process with cheerio and build/send json response