Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo transformar la codificación de un archivo con vim

Imago voragine.net
[actualizado el ]

Muchas veces la codificación de un archivo nos está volviendo locos, porque hace que no funcione algún script, y es lo último que se nos ocurre comprobar. A mí me pasa, por ejemplo, cuando hago un script en bash utilizando algún archivo que me ha pasado alguien que usa Windows, y por tanto viene con una codificación ISO-8859 en vez de UTF-8. Para evitar sorpresas, lo mejor es comprobar al principio la codificación y en caso de no ser UTF-8 cambiarla.

Para comprobar podemos usar file:

file archivo.txt

Para cambiarle la codificación con vim:

vim archivo.txt
 # una vez dentro de vim
 :set fileencoding=utf-8
 :wq

3 comentarios

    • Por john •

    Hola.
    Es un poco viejo el post, pero es el único que me dió la solución para hacerlo desde la consola sin tener que extraer los archivos a un entorno gráfico.
    Tenés idea si habría forma de hacer un bash que haga esto con muchos archivos?
    Estoy pasando todas las series a una máquina con linux que tiene lo mínimo y necesario, y todos sus subtítulos están con ISO-8859 y hacerlo uno por uno se me va a hacer eterno.
    Gracias!

    1. Hola John,

      puedes usar iconv para cambiar la codificación:

      iconv -f iso-8859-1 -t utf-8 -o out.txt in.txt

      Para hacerlo para un lote de archivos puedes usar for:

      for i in *; do iconv -f iso-8859-1 -t utf-8 -o out-$i $i; done
    • Por John •

    Gracias por la respuesta..lo termine haciendo con find -execdir..que comando genial que es.
    Saludos!

Dejar un comentario

*
*

 

No hay trackbacks