Como migrar de iconv a iconv-lite en NodeJS

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 🤙