Mostrando entradas con la etiqueta unix2dos. Mostrar todas las entradas
Mostrando entradas con la etiqueta unix2dos. Mostrar todas las entradas

lunes, 10 de septiembre de 2012

Codificación de ficheros de texto Linux/Windows

Vamos a ver unos ejemplos de como convertir diferentes ficheros de texto editados en sistemas Unix y/o Windows. En Linux los ficheros de texto se codifican mediante UTF-8 que es una de las tablas del estándar Unicode, pero en Windows no se sigue este estándar. Las instalaciones de Windows en castellano utilizan la tabla Windows-1252. Los ficheros de texto de Windows tienen una serie de caracteres especiales y ocultos para señalar el fin de línea, fin de fichero, etc. En Linux son diferentes y aunque en muchos casos puede abrir correctamente los ficheros de texto de Windows en otros casos no. Explicado esto vamos a presentar unas herramientas que nos serán de utilidad en alguno de los supuestos anteriores. dos2unix nos permite transformar estos archivos de formato Windows (DOS) a Linux. Un ejemplo: si disponemos de un fichero creado con el notepad, podemos comprobar su codificación con la herramienta file.
#file ejemplo.txt
ejemplo.txt: ASCII text, with CRLF line terminators
#dos2unix ejemplo.txt 
dos2unix: converting file ejemplo.txt to UNIX format ...
#file ejemplo.txt 
ejemplo.txt: ASCII text
unix2dos nos permite transformar estos archivos de formato Linux a Windows (DOS).
#unix2dos ejemplo.txt 
unix2dos: converting file ejemplo.txt to DOS format ...
#file ejemplo.txt 
ejemplo.txt: ASCII text, with CRLF line terminators
iconv nos permite cambiar la codificación del fichero de texto. iconv -f old-encoding -t new-encoding file.txt > newfile.txt
# iconv --from-code ASCII --to-code UTF-16 --output ejemplo.utf16 ejemplo.txt
# file ejemplo.utf8 ejemplo.txt ejemplo.utf8: Little-endian UTF-16 Unicode text, with CRLF, CR line terminators
ejemplo.txt:  ASCII text, with CRLF line terminators
convmv nos permite cambiar la codificación de los carácteres.
# convmv -f iso-8859-1 -t utf8 files
Con esta orden convertiremos todos los ficheros dentro del directorio files de iso-8859-1 a utf8.