Saltar a contenido

Codificaci贸n

Todo archivo de texto se guarda en disco mediante una secuencia de c贸digos num茅ricos, uno por cada car谩cter. De esta forma, si el contenido de un documento es el siguiente texto:

Hola

... a cada letra del alfabeto le corresponde un c贸digo, y lo que se guarda en disco es lo siguiente:

72 111 108 97

Aunque en realidad, los c贸digos se transformar谩n a su equivalente en sistema de numeraci贸n binario:

01001000 01101111 01101100 01100001

Codificaciones

驴Quien establece el c贸digo asignado a cada letra? En los inicios de la inform谩tica, cada fabricante de ordenadores ten铆a su propia codificaci贸n, pero cuando surgi贸 la necesidad de intercambiar datos entre computadoras, se cay贸 en la cuenta de que lo que se transmite son ceros y unos, que pueden ser malinterpretados por la m谩quina receptora. Hubo que llegar a un acuerdo y adoptar una codificaci贸n est谩ndar.

En las primeras d茅cadas de la inform谩tica, la codificaci贸n m谩s popular fue ASCII, abreviatura de C贸digo Est谩ndar Americano para Intercambio de Informaci贸n. V茅ase una lista de los c贸digos asignados a cada car谩cter en la Wikipedia.

ASCII no contempla caracteres m谩s all谩 del ingl茅s. La espa帽ola, las francesas y , la alemana o las vocales acentuadas no est谩n incluidas. Con el paso de los a帽os, fueron apareciendo otras codificaciones alternativas, hasta que en la d茅cada de 1980 naci贸 un grupo de trabajo impulsado por Xerox y Apple, para elaborar una propuesta de codificaci贸n que recoja todos los idiomas del mundo, s铆mbolos matem谩ticos, t茅cnicos, musicales, iconos, emojis, y un largo etc茅tera.

El proyecto fue finalmente asumido por el consorcio UNICODE, creado para ese prop贸sito en 1991, e integrado actualmente por importantes empresas, como Apple, Google, IBM o Microsoft, por ejemplo. A lo largo de los a帽os, UNICODE ha ido desarrollando tres codificaciones principales, UTF8, UTF16 y UTF32 (Unicode Transformation Format).

Por defecto, y salvo que cambiemos la configuraci贸n de Geany, la codificaci贸n utilizada suele ser UTF8. De todas formas, cada documento puede guardarse con una codificaci贸n diferente, que se visualiza en la barra inferior de estado.

Detectar codificaci贸n

Al abrir un fichero, Geany detecta autom谩ticamente la codificaci贸n utilizada. Si este mecanismo no funciona correctamente, tendremos que indicarla manualmente. En la ventana de di谩logo de apertura, pulsar en M谩s opciones > establecer codificaci贸n.

Geany convierte el documento adapt谩ndolo a la codificaci贸n deseada al cargarlo en memoria. Si al abrirlo seleccionamos "Sin codificaci贸n", no se har谩 transformaci贸n alguna.

Si hemos abierto un archivo y no se visualiza correctamente, usar el men煤 Archivo > Recargar como para volver a abrirlo asumiendo otra codificaci贸n.

Detecci贸n a partir del texto

Algunos lenguajes de programaci贸n permiten insertar en el texto del archivo instrucciones para indicar la codificaci贸n. Geany examina las primeras l铆neas de texto (hasta un l铆mite de 512 caracteres). Por ejemplo, en archivos HTML podemos encontrar algo as铆 como:

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15" />

... lo que indica que se est谩 usando la codificaci贸n ISO-8859-15. En otro tipo de archivos podemos escribir la codificaci贸n como una l铆nea de comentarios:

/* geany_encoding=ISO-8859-15 */

o bien:

# geany_encoding=ISO-8859-15 #
# encoding = ISO-8859-15
# coding: ISO-8859-15

El formato depende de la sintaxis del lenguaje de programaci贸n.

Guardar con otra codificaci贸n

Podemos transformar el fichero antes de guardarlo. Para ello usar el men煤 Documento > establecer codificaci贸n.

Archivos nuevos

Cuando creamos un archivo desde cero, la codificaci贸n por defecto depende de la configuraci贸n de Geany. Se establece con el men煤 Editar > Preferencias > Archivos > Codificaci贸n.

Unicode Byte-Order-Mark (BOM)

Es posible que algunos archivos lleven al principio una secuencia de bytes conocida como Byte Order Mark (BOM), o marca de orden de bytes (consultar Wikipedia para obtener m谩s detalles). La BOM contiene informaci贸n del archivo, indicando la codificaci贸n. Geany lo tendr谩 en cuenta.

Conviene no incluir la BOM al guardar el archivo, ya que, si se trata de un programa a compilar, por ejemplo, algunos compiladores no ser谩n capaces de interpretarla.

Para incluir una BOM en un archivo o para eliminarla, tendremos que configurarlo con el men煤 Documento > Escribir BOM Unicode. Si la opci贸n de guardar con BOM est谩 activada, aparecer谩 un indicador en la barra inferior de estado:

(con BOM)

En caso contrario, no se muestra nada.

Saltos de l铆nea

Supongamos un documento con dos l铆neas de texto:

Hola
Adios

Esto tiene diez caracteres:

  • los cuatro caracteres de la palabra Hola
  • el car谩cter de salto de l铆nea
  • los cinco caracteres de la palabra Adios

... y posiblemente un und茅cimo car谩cter adicional, que es el salto de l铆nea tras la palabra Adios.

驴Cual es el c贸digo del car谩cter de salto de l铆nea? Puede variar de un archivo a otro:

  • puede ser un car谩cter c贸digo 10, que se conoce como "line feed" (salto de l铆nea), o "LF", y lleva el cursor a la l铆nea siguiente

  • puede ser un car谩cter c贸digo 13, que se conoce como "carriage return" (retorno de carro), o "CR", y lleva el cursor al inicio de la l铆nea

  • algunos archivos llevan una combinaci贸n de dos caracteres, CRLF

驴Quien decide los c贸digos a usar? Generalmente va por sistemas operativos:

  • LF: sistemas tipo Unix, Linux, Mac OS X y otros
  • CR+LF: Windows y otros sistemas antiguos de Microsoft
  • CR: antiguos sistemas Apple II y Mac OS hasta la versi贸n 9

驴Que pasa si abrimos un archivo con una codificaci贸n que no se corresponde con la de nuestra m谩quina? Geany detecta autom谩ticamente la codificaci贸n, y es capaz de trabajar con todas ellas. En la barra de estado inferior veremos el tipo de c贸digos de salto utilizados en el archivo actual:

EOL: CRLF

EOL significa end of line, es decir, "car谩cter de fin de l铆nea". Podemos tener abierto un archivo con un tipo de salto y convertir los c贸digos para guardarlo con otro estilo. Se hace mediante el men煤 Documento > Establecer fin de l铆nea.

Para los archivos nuevos, podemos establecer el tipo de salto de l铆nea por defecto mediante el men煤 Editar > Preferencias > Archivos.

Visualizar saltos de l铆nea

El car谩cter de salto de l铆nea es algo que no tiene una representaci贸n f铆sica que podamos visualizar. Podemos simularlo si lo activamos mediante Preferencias > Editor > Mostrar > Mostrar finales de l铆nea. Esto muestra un s铆mbolo LF en todos los lugares donde haya un retorno de carro o un avance de l铆nea. La configuraci贸n permite establecer que se muestren solo los finales de l铆nea que difieran del car谩cter predeterminado del archivo, CR o LF.