节点请求 ISO-8859-1 从节点 4 开始不工作

node request ISO-8859-1 not working since node 4

我得到一个带有 return latin1 的网页

它与节点 0.10 的 iconv-lite 一起工作。但是现在

$ node -v
v4.1.1

I can't use iconv-lite with the latest node version。所以我试图回到 Iconv:

var Iconv  = require('iconv').Iconv;
...
  request(url, {
        uri: url,
        method: 'GET'}, function (err, resp, body) {
        var ic = new Iconv('ISO-8859-1', 'utf-8');
        var buf = ic.convert(body);
        body = buf.toString('utf-8');

但这会导致 �ber 它应该是 Über

我不知道如何解决这个问题。欢迎任何提示。

尝试 latin1 而不是 iso-8859-1。这就是文档所说的用于从 iso-8859-1 转换为 utf-8...

编辑:您还必须将请求编码设置为 'binary' 才能正常工作。

编辑 2:刚刚意识到,以二进制形式请求时您甚至不需要 Iconv。

request(url, {... encoding: 'binary' ...},...
console.log(body)