Recientemente migré de iconv a iconv-lite en NodeJS, gasté unos minutos en ello y quiero compartir cómo lo hice por si ayuda a alguien.
¿Porqué migrar de iconv a iconv-lite?
Algunas razones:
- Soporte de streaming, por ejemplo para largos CSV
- Rendimiento
- No necesita compilación nativa, por lo que puede instalarse sin problemas en máquinas Windows como Azure
¿Cómo?
Cambiando un par de líneas:
- Eliminando el carácter BOM
- Cambiando la función encode, donde proceda
Ejemplo
Miremos un ejemplo de cómo cambiarlo.
Código de ejemplo usando iconv
:
// iconv example
const Iconv = require("iconv");
const iconv = new Iconv('utf8', 'utf16le');
res.write(new Buffer([0xff, 0xfe]));
res.write(iconv.convert("your string"));
Ahora usando iconv-lite
// iconv-lite example
const iconv = require("iconv-lite");
res.write(iconv.encode("your string", 'utf8'));
¡Eso es todo! Deja un comentario con tus dudas o experiencia 🤙