Javascript 将乱码字符转换为ISO-8859-1

Javascript 将乱码字符转换为ISO-8859-1,javascript,node.js,request-promise,Javascript,Node.js,Request Promise,我正试图从一个葡萄牙语站点抓取一些文本,该站点根据meta标记以ISO-8859-1编码。我正在使用NodeJS和request-promise包。例如,我得到的回报是 Alg� 我相信我需要在NodeJS/Javascript中将其转换为ISO-8859-1。我尝试了decodeURIComponent、encodeURIComponent、unescape和escape。这些都不起作用。其中一些甚至让弦的情况变得更糟。有人知道怎么解决这个问题吗 提前感谢。如果您通过获取请求数据,您可以尝试将

我正试图从一个葡萄牙语站点抓取一些文本,该站点根据meta标记以ISO-8859-1编码。我正在使用NodeJS和request-promise包。例如,我得到的回报是

Alg�

我相信我需要在NodeJS/Javascript中将其转换为ISO-8859-1。我尝试了decodeURIComponent、encodeURIComponent、unescape和escape。这些都不起作用。其中一些甚至让弦的情况变得更糟。有人知道怎么解决这个问题吗


提前感谢。

如果您通过
获取
请求数据,您可以尝试将数据转换为arrayBuffer:

let result = [];
fetch('isoEncodedApi/data.json').then(response => {
  response.arrayBuffer().then(arrayBuffer => {
    const textDecoder = new TextDecoder('iso-8859-1');
    const decodedResult = textDecoder.decode(arrayBuffer);
    result = JSON.parse(decodedResult);
  });
});


如果站点在ISO-8869-1中,则需要将文本从该编码转换而不是转换为该编码。对于目标编码,您可能应该选择UTF-8。带问号的菱形是字符集转换中的占位符字符,因此修复该字符是不可能的。但是,对于浏览器charset=ISO-8859-1,您应该使用charset=Windows-1252进行转换,这是浏览器替代ISO-8859-1(正式使用HTML5)的超集。我正在尝试Iconv、缓冲区,但没有任何效果。当我调用“rp”时,是否应该在选项中设置某种编码?我还在jQuery中使用.text()函数…可能响应不是iso-8859-1编码的?您能将缓冲区转换为十六进制并发布吗?