Hace un rato he tenido que cambiar la codificación de un buen número de programas de un cliente que tenía hechos en PHP con codificación ISO-8859-1 a codificación UTF-8. En entornos Linux se dispone de un comando muy útil para estas tareas, iconv.
El siguiente ejemplo muestra cómo cambiar la codificación del archivo oldfile.htm de ISO-8859-1 a UTF-8, dejando el archivo resultante con el nombre newfile.html.
iconv --from-code=ISO-8859-1 --to-code=UTF-8 ./oldfile.htm > ./newfile.html
Si lo que necesitamos es cambiar la codificación de varios archivos sustituyendo los archivos originales, podemos utilizar la instrucción for de Bash
for i in *.php; do iconv --from-code=ISO-8859-1 --to-code=UTF-8 $i -o $i.utf8; mv $i.utf8 $i; done