Puede que alguna vez hayas tenido que pasar datos de un fichero en algún formato extraño a una BD u otro tipo de repositorio. En el proceso de exportación/importación de los datos puede haber problemas con los juegos de caracteres ya que en aplicaciones del mundo antiguo (vease DOS etc) en lenguajes tenebrosos (COBOL, Pascal, etc...) vete a saber los juegos de caracteres que se usaban. A veces tendrás que sacar los datos de un fichero en formato DBF, cosa fácil usando un script propio o uno más profesional como dbf_dump. Una vez tienes el fichero puedes echar un ojo (a ojo) si te salen las tildes y las Ñs, o bien puedes echar mano del comando file. Puede que los caracteres salgan mal y file diga esto: linux$ file -i fichero.csv fichero.csv: text/plain charset=unknown linux$ Ups! Vale, qué no punda el canico. Sabemos que disponemos del comando iconv para hacer la conversión de caracteres. El formato es así: linux$ iconv --from=JUEGO_DE_CARACTERES_ORIGEN --to=JUEGO DE CARACTERES_DESTINO fichero.csv > resultado.csv Pero estamos en las mismas. Sabemos lo que queremos, tenemos la herramienta, pero no conocemos el JUEGO_DE_CARACTERES_ORIGEN. Bueno, la informática permite hacer el burro y probar los 1000y poco juegos disponibles con iconv y un simple bucle.Y uno, como es muy bruto y a veces no se tiene tiempo de investigar más y de documentarse sobre los juegos de caracteres de DOS y tal pues nada, todos al bucle y a ver cuál funciona. Primero necesitamos la lista de juego de caracteres: linux$ for i in `iconv -l`; do echo $i; done > juegos.txt Con eso generamos la lista, quizá haya que editarla y reemplazar caracteres \\, vale, no me apetece buscar la orden sed, no me la "sed" de memoria (festivaaaal del humooor). Y ahora vamos a lo bruto. En un bucle for sacamos las 10 primeras líneas del fichero misterioso y vamos probando cada uno de los juegos de caracteres, guardando el resultado en un fichero con el nombre modificado: linux$ for i in `cat juegos.txt` do echo -n Convirtiendo ${i} head fichero.csv | iconv --from=$i --to=UTF-8 > fichero.${i}.csv echo done done linux$ Echamos un ojo a los resultados, con un GREP que busque una línea concreta eta kitto!! Puede que el juego sea un 850 o similar.