2012-01-01 17 views
6

Necesito convertir una cadena de Windows-1251 a UTF-8.Conversión de Windows-1251 a UTF-8 en Node.js

he tratado de hacer esto con iconv, pero todo lo que consigo es algo como esto:

пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ

var iconv = new Iconv('windows-1251', 'utf-8') 
title = iconv.convert(title).toString('utf-8') 
+0

posible duplicado de [nodejs http codificación respuesta] (http://stackoverflow.com/questions/5135450/nodejs-http-response-encoding) –

Respuesta

2

Si leo los documentos correctamente, no debería tener que llama a String en el resultado. .convert debería ser suficiente: https://github.com/bnoordhuis/node-iconv

var iconv = new Iconv('windows-1251', 'utf-8') 
title = iconv.convert(title) 
12

Aquí está la solución a su problema trabajando. Tienes que usar el búfer y convertir tu cadena a binario primero.

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(); 
    } 
}); 
+0

1 Su solución funcionó para mí. Gracias. Pero en lugar de 'iconv' utilicé el [windows1251] (https://www.npmjs.com/package/windows-1251) – Azevedo