Tutti (noi programmatori web) ci siamo trovati almeno una volta (io un milione) a dover trattare contenuti codificati in un charset scomodo e allora succede che nella nostra bella schermata compaiono quei caratteri tanto odiati: quadratini, accentate, croci, animali strani, simboli massonici e chi più ne ha più ne metta.

E allora si deve convertire. Un bel problema..

Il php ci mette a disposizione ad esempio le funzioni utf8_encode e utf8_decode che però sono limitate ai charset utf8 e iso-8859-1.
La soluzione migliore che ho trovato ad oggi è libiconv una libreria parte della GNU C Library, nata per risolvere queste problematiche. Per gli utenti linux c’è a disposizione il comando iconv che si interfaccia alla libreria (vedi il man per i dettagli, ma è semplicissimo). Per chi invece non se la cava col terminale o è un utente windows consiglio di andare a vedere iconv.org, un’interfaccia web che ti permette di convertire al volo i documenti!

Per la lista degli encoding disponibili vedi http://www.gnu.org/software/libiconv/