Es posible leer de la página web en la no codificación utf8? Por ejemplo, windows-1251.
Traté de convertir el resultado de nodo-iconv:

var convertedBody = new Iconv('windows-1251','utf-8').convert(responseBody));

Pero me excepción:

Error: EILSEQ, Illegal character sequence.
    at IncomingMessage.<anonymous> (/root/nodejstest/test2.js:22:19)
    at IncomingMessage.emit (events.js:59:20)
    at HTTPParser.onMessageComplete (http.js:111:23)
    at Socket.ondata (http.js:1183:22)
    at Socket._onReadable (net.js:654:27)
    at IOWatcher.onReadable [as callback] (net.js:156:10)

Gracias!

  • ¿Ya check out este hilo en el nodejs grupo de google? Parece dirigirse a su problema…
  • Gracias, voy a ver.
InformationsquelleAutor chardex | 2011-02-27

4 Comentarios

  1. 7

    Aquí está trabajando solución a su problema. Usted tiene que usar Buffer y convertir su cadena binaria de primera.

    request({ 
    uri: website_url,
    method: 'GET',
    encoding: 'binary'
    }, function (error, response, body) {
        body = new Buffer(body, 'binary');
        conv = new iconv.Iconv('windows-1251', 'utf8');
        body = conv.convert(body).toString();
         }
    });
  2. 4

    Echar un vistazo a la iconv-lite de la biblioteca.
    Utilizando el código puede tener este aspecto:

    var iconv = require('iconv-lite');
    request(
        { 
            uri: website_url,
            method: 'GET',
            encoding: 'binary'
        },
        function(err, resp, body){
            body = iconv.decode(body, 'win1251');
        }
    );
  3. 0
    const request = require('request');
    const iconv = require('iconv-lite');
    
    request({
        url: 'http://meta.ua',
        encoding: 'binary',
    }, (err,res,body) => {
        if (err) throw err;
    
        var decoded = iconv.decode(res.body, 'win1251');
    
        console.log(decoded);
    });
    • Por favor, no publiques desnudo código, también proporcionan una explicación para lo que está haciendo el código.

Dejar respuesta

Please enter your comment!
Please enter your name here