Ir al contenido principal

Cómo Cambiar la Codificación de un Fichero en Linux y Mac OS X


Introducción


A veces recibimos ficheros .wxm hechos desde Windows que no podemos
abrir con nuestro wxMaxima de Linux ni con el de Mac OS X. En el
proceso de intentar abrirlos, wxMaxima ofrece dos mensajes (sacados de
wxMaxima en Ubuntu 11.04):

wxMaxima encontró un error durante la carga
/home/mi_usuario/Documentos/fichero.wxm

Failed to convert file
"/home/mi_usuario/Documentos/fichero.wxm"
to Unicode.

y es el segundo el que nos brinda la pista definitiva de lo que
ocurre. En efecto, parece sugerir que el fichero no está codificado en
utf-8 como causa de que wxMaxima no pueda abrir el documento. ¿Cómo
salvar esta dificultad? Parece que lo razonable es cambiar la
codificación de fichero.wxm produciendo el fichero_utf8.wxm, que sí
podrá abrir wxMaxima, antes que tener un ordenador con Windows para
abrir estos documentos problemáticos.

Lo que sigue sirve para cambiar la codificación de toda clase de
ficheros; en particular puede ser útil para ficheros .tex, entre
otros. Para fijar ideas, haremos los ejemplos con el fichero fichero.wxm
(hacer click para descargar fichero wxm)

que una vez descargado lo colocamos en:

/home/mi_usuario/Documentos

y si estamos usando Mac OS X, lo situaremos en:

/Users/mi_usuario/Documentos


Cómo Saber la Codificación de un Fichero

Para poder cambiar la codificación, lo primero es saber en qué está
codificado el fichero problema, que  en nuestro ejemplo es
fichero.wxm. 

Siempre desde la consola/terminal de órdenes, que tendremos abierta, 
nos posicionamos en el lugar donde está el fichero problema; en nuestro
ejemplo conseguiremos esto con la orden de consola:

$ cd /home/mi_usuario/Documentos

o bien

$ cd /Users/mi_usuario/Documentos

si usamos Mac OS X. Ejecutaremos entonces la orden:

$ file -i fichero.wxm

y obtendremos la siguiente información:

fichero.wxm: text/x-c; charset=iso-8859-1

que nos dice que está codificado en latin-1, también conocido como iso-8859-1.

Cómo Cambiar la Codificación de un Fichero

La orden que cambia la codificación en Linux, y en Mac OS X, es iconv.

Una vez que hemos averiguado la codificación del fichero que queremos
tratar, en nuestro ejemplo es fichero.wxm, averiguamos con qué nombre
conoce iconv a esa codificación. Para ello ejecutaremos la orden de
consola:

$ iconv -l

Se genera con ello una larguísima lista que contiene todos los
conjuntos de caracteres conocidos.  Advierte el mensaje que esto no
quiere decir necesariamente que todas las combinaciones de estos
nombres se puedan usar como parámetros de "from" y de "to" en la línea
de órdenes. Hay que tener en cuenta que un determinado conjunto de
caracteres puede aparecer con varios nombres.

Averiguamos, examinando esa lista, que la orden iconv entiende
iso-8859-1 como ISO-8859-1 y que utf-8 es para ella UTF-8. Tal
nomenclatura es la que habremos de usar. 

En general, si queremos cambiar el fichero "fichero_cod1" de la
codificación "cod1" al fichero "fichero_cod2" codificado en la
codificación "cod2", ejecutaremos la orden: 

$ iconv -f cod1 -t cod2 -o fichero_cod2 fichero_cod1

La "f" es abreviatura de "from" y la "t" lo es de "to". En nuestro
ejemplo tendríamos que ejecutar la orden:

$ iconv -f ISO_8859-1 -t UTF-8 -o fichero_utf8.wxm fichero.wxm

El fichero "fichero_utf8.wxm" es idéntico a "fichero.wxm", pero
codificado en UTF-8 en lugar de iso-8859-1. Ahora fichero_utf8.wxm sí
puede ser abierto con nuestro wxMaxima de Linux y Mac OS X.

Podemos someter a prueba el fichero fichero_utf8.wxm y constatar que
efectivamente está cofificado en UTF-8. Para ello basta con usar de nuevo 
la orden file, obteniendo el siguiente diálogo:

$ file -i fichero_utf8.wxm 
fichero_utf8.wxm: text/x-c; charset=utf-8
y esto es todo. 

Entradas populares de este blog

Fallo al obtener la lista de compartición del servidor

 - Ubuntu Karmic Koala El problema. El detalle es que a veces tengo que revisar archivos que están en otras computadoras que utilizan windows. Al momento de darle en el menú Lugares - Red - Red de Windows y al elegir el grupo de trabajo en el que están mis equipos me aparece el siguiente error. No se puede montar el lugar. Fallo al obtener la lista de compartición del servidor. La solución . La encontré en este articulo de los Foros de Ubuntu, lo voy a copiar tal cual, espero que no le moleste al autor y solo a manera de respaldo. # — Aquí inicia el articulo de los foros de Ubuntu – 1- En principio es necesario que estén instalados: samba samba-common smbclient winbind   2- Luego editar el archivo /etc/samba/smb.conf sudo gedit /etc/samba/smb.conf   A los cambios necesarios para adaptar el sistema, según los tutoriales de samba es necesario tener presente que: a- Donde dice workgroup = WORKGROUP, reemplazar WORKGROUP por el nombre de grupo de ...

Rootear en Ubuntu un teléfono Android

Tengo un teléfono con Android, concretamente un Motorola Defy, y resulta que en Android, basado en Linux, eres un simple usuario y solo puedes realizar algunas tareas. Otras te están vetadas. Conseguir los permisos de superusuario, se llama entre los entendidos rootear el móvil. En principio es una operación que no entraña riesgos, pero en esta vida todo puede fallar. Así que debe quedar claro que si decides rootear el teléfono, lo haces bajo tu propia responsabilidad. También debes entender, que si rooteas el teléfono, los SAT aprovechan para lavarse las manos de cualquier problema y anular la garantía. Y por último, debes saber que es posible que ya no recibas las actualizaciones automáticas de Android. Para rootear teléfonos se utiliza una aplicación llamada Superoneclick . En mi caso, esta parece ser la única solución. Pero este es un programa para Windows, por lo que.... Afortunadamente, esta escrito en .NET, por lo que vamos a poder ejecutarlo con MONO en nuestro ...

Descargar Packet Tracer 5.2 [Windows y Linux]

Packet Tracer 5.2 [Windows y Linux] Packet Tracer es la herramienta de aprendizaje y simulación de redes interactiva para los instructores y alumnos de Cisco CCNA. Esta herramienta les permite a los usuarios crear topologías de red, configurar dispositivos, insertar paquetes y simular una red con múltiples representaciones visuales. Packet Tracer se enfoca en apoyar mejor los protocolos de redes que se enseñan en el currículum de CCNA. Este producto tiene el propósito de ser usado como un producto educativo que brinda exposición a la interfaz comando – línea de los dispositivos de Cisco para practicar y aprender por descubrimiento. Packet Tracer 5.2 es la última versión del simulador de redes de Cisco Systems, herramienta fundamental si el alumno está cursando el CCNA o se dedica al networking. En este programa se crea la topología física de la red simplemente arrastrando los dispositivos a la pantalla. Luego clickando en ellos se puede ingresar ...