El profesional de la información


Abril 1995

ISO 8859: sopa de caracteres

Por Carles Bellver Torlà

Carles Bellver TorlàMuchas personas se preguntan por qué muchos mensajes de correo electrónico enviados por nuestros colegas hispanohablantes llegan hechos literalmente un "churro" si contienen acentos, eñes o cualquier otra peculiaridad ortográfica española. ¿Es que no podemos enviar y recibir mensajes presentables en castellano? ¿Qué hacen los organismos internacionales de normalización para arreglar este problema? En realidad sí que han hecho bastante, pero se trata de una historia larga. La redacción de IWE ha pedido a Carles Bellver, delCentre de Processament de Dades de la Universitat Jaume I, un informe claro sobre este asunto para que nuestros lectores puedan salir de dudas.

La información es cosa de bits. Todos los datos (texto, imágenes, voz) que se guardan en las memorias y en los discos de ordenadores, y que se transmiten por las líneas de comunicación, se han codificar en forma digital como secuencias de bits: señales que pueden ser solamente "unos" o "ceros" (por llamar de alguna manera a dos tipos posibles de valores de voltaje, frecuencia o cualquier otra magnitud eléctrica medible).

Los bits van en "paquetes" de ocho; son los llamados octetos o bytes. Las combinaciones de 8 bits "ceros" y "unos" dan para representar exactamente 256 valores distintos, valores numéricos que van del 0 al 255. Pero eso son números, claro. Cuando lo que hay que representar es texto, los sistemas utilizan tablas que establecen la equivalencia entre los caracteres y los códigos de caracteres: los números utilizados convencionalmente para representar aquellos símbolos.

Estas tablas son lo que se denomina conjuntos de caracteres (character sets). Dado un "character set", cualquier texto se puede codificar electrónicamente como una serie de bytes que representan los caracteres.

Tabla ISO 8859‑1. El conjunto ISO Latin‑1 completa el Ascii para abarcar todos nuestros caracteres especiales

Una norma que surge demasiado pequeña

En los días antiguos, la informática nació y creció por iniciativa del complejo militar‑industrial norteamericano. Cuando hubo que definir un conjunto de caracteres estándar, común para los distintos fabricantes, sólo se tuvieron en cuenta los símbolos más usuales del inglés. Quedaron fuera, por lo tanto, las vocales acentuadas y muchos caracteres utilizados en otros idiomas occidentales. Este conjunto es el famoso American Standard Code for Information Interchange (Ascii; norma Ansi X3.4; norma ISO 646).

Ascii constituye, en palabras de André Pirard, "un insulto al octeto". Es cierto, ya que sólo aprovecha los primeros 7 bits, la mitad de los 256 códigos posibles: del 0 al 127. Del 128 al 255 quedaba media tabla vacía.

Eso era espacio suficiente para muchos más caracteres, pero no se podía pedir a los "sesudos" técnicos americanos que anticipasen nuestras necesidades y se preocupasen por nuestras peculiares y simpáticas eñes. Este trabajo nos correspondía a los europeos, y no lo hicimos.

En vez de utilizar el octavo bit para codificar caracteres no ingleses, los norteamericanos, y con ellos todos los demás, lo utilizaron como "bit de control de paridad" - una especie de dígito de control o verificación como tienen, p. ej., los números de las cuentas corrientes, pero más sencillo-. Una forma usual es la "paridad par", o sea, establecer el convenio de que la suma de todos los bits "uno" del octeto sea un número par. El terminal emisor hace que el octavo bit sea "cero" o "uno" con tal que la suma de unos sea par. El receptor verifica que esta condición se cumple cada vez, y da señal de error si ello no es así debido a una interferencia.

La torre de Babel electrónica

Más adelante, la expansión de la industria informática y la internacionalización de los mercados obligó a los fabricantes a ampliar por su cuenta el conjunto Ascii para dar respuesta a las exigencias de la clientela francesa, alemana, española, etc.

Desgraciadamente, a falta de un estándar, cada uno hizo con esa segunda mitad de la tabla de caracteres lo que le vino en gana. Los mismos caracteres recibían distintos códigos en sistemas comercializados por IBM, DEC (Digital Equipment Corporation), Apple, Atari, Commodore, etc. Ahí comienza la torre de Babel del texto electrónico.

En este punto, el estándar llegó un poco tarde, cuando gran parte del daño ya estaba hecho. Pero más vale tarde que nunca.

Una norma multilingüe

Instituciones oficiales y fabricantes se pusieron de acuerdo en una norma ratificada por la International Standardisation Organisation (ISO). Es la norma ISO 8859, que aprovecha el espacio vacío dejado por el octavo bit del conjunto Ascii para acomodar los símbolos de otros idiomas.

En realidad, como los 128 valores numéricos de la segunda mitad de la tabla no bastan para representar los caracteres de todos los idiomas del mundo, la norma ISO 8859 prescribe conjuntos de caracteres distintos para los diferentes grupos de idiomas. La primera mitad coincide siempre con la tabla Ascii clásica, y en la segunda aparecen los caracteres especiales. A las lenguas españolas, así como a la mayor parte de las europeas occidentales, les corresponde el conjunto ISO 8859‑1, también conocido como ISO Latin‑1.

Reacciones de la industria

Los fabricantes acogieron el estándar con distintos grados de adhesión. DEC no tuvo que hacer nada, ya que ISO 8859 es casi idéntico a las tablas usadas en sus terminales VT. IBM implantó una nueva "code page" (así llaman ellos a los conjuntos de caracteres) para sus PCs, la 850, que corresponde al estándar. Microsoft lo adoptó para Windows (aunque lo llama "Ansi code" en su documentación). Apple, por su parte, guarda silencio sobre el tema, y los Macintosh continúan usando su conjunto de caracteres propio, distinto del estándar.

Uso de la norma en correo electrónico

En realidad, que cada sistema (Ms‑dos, Macintosh, etc.) utilice sus propios códigos, sus propios conjuntos de caracteres, no es en principio problemático. Mientras no salgamos de nuestro sistema, no ocurrirá nada.

El problema surge cuando se transmiten textos entre sistemas distintos, por ejemplo por correo electrónico. La solución: utilizar ISO 8859‑1 como "lingua franca", como código intermedio de traducción.

La idea es sencilla. Cuando uno escribe un texto en su ordenador o terminal los caracteres se codifican según el conjunto propio de su sistema, sea cual sea. Cuando lo transmite a otro sistema, el software de comunicaciones (el programa de correo electrónico, por ejemplo) lo debe traducir al conjunto ISO 8859‑1 utilizando tablas de traducción. Finalmente, cuando el texto llegue a su destinatario, su software deberá traducir los caracteres desde ISO 8859‑1 a su conjunto propio, sea cual sea.

Surgen problemas

Pero, si todo es así de fácil, ¿por qué a veces no funciona? La explicación está en los dos requerimientos técnicos del asunto:

  1. El software de comunicaciones debe respetar los 8 bits de los caracteres que se transmiten.
  2. El software de comunicaciones debe realizar la traducción de los códigos entre su conjunto propio e ISO 8859‑1.

El primer requerimiento no siempre se ha cumplido. Como el estándar Ascii original sólo empleaba los 7 primeros bits de cada octeto, se suponía que cualquier valor transportado en el último bit podía ser espúreo, y las primeras versiones del software de comunicaciones usual se encargaban de limpiar este último bit (lo que se denomina "control de paridad inhibido", ignorando el octavo bit). De hecho, la primera especificación del correo electrónico de Internet (RFC 821) sólo consideraba legal la transferencia de 7 bits.

Aunque esto se corrigió después (RFC 1428), algunos sistemas continúan operando como en los días antiguos y cortan el último bit. Cuando esto ocurre, nuestros caracteres acentuados se transforman en otros caracteres de la primera mitad de la tabla; 'información', por ejemplo, se transforma en 'informacisn'

(vemos en la tabla -empezando por las columnas, por arriba, y continuando por las filas, por la izquierda- que ó = 11110011 y que s = 01110011; en este caso el sistema considera el primer bit como el octavo e ignorándolo interpreta que el carácter recibido es una s).

Es tarea del administrador del sistema informático asegurarse de que el software de comunicaciones sea respetuoso con todos nuestros bits y nuestros acentos.

El segundo requerimiento se atiende cada vez más. En los últimos años, casi todos los programas de comunicaciones para ordenadores personales (compatibles con Ms‑dos y Apple Macintosh) se han adaptado para realizar la traducción de códigos. Éste es el caso de los programas de correo electrónico (Eudora, por ejemplo) y transferencia de ficheros, y de los clientes del Gopher y el World‑Wide Web.

El usuario, o el administrador del sistema, deberían también asegurarse de que se usen programas que efectúan la traducción. Si no, los caracteres especiales aparecerán desfigurados; 'información', escrito en un Macintosh, se leerá 'informaci?n' en la pantalla de un PC con MS‑Windows.

Mime

En el caso del correo electrónico puede haber una complicación añadida. Las Multi‑purpose Internet Mail Extensions (Mime; RFC 1521), una extensión estándar del correo de Internet, definen un método de codificación de caracteres de 8 bits para su transferencia a sistemas que se empeñan aún en ver solamente 7 bits.

El problema es que este método sólo funciona cuando tanto el programa de correo del remitente como el del destinatario son compatibles con Mime, y todavía hay muchos programas que no lo son. Si el remitente usa esta codificación especial y el destinatario no la puede decodificar, 'información' se leerá como 'informaci=F3n'. El problema se soluciona desactivando la opción "May use QP (Quoted Printable)" en el programa de correo.

Referencias

Michael Gschwind(1994). ISO 8859‑1 National Character Set FAQ.

URL:ftp://pub/8bit/FAQ‑ISO‑8859‑1

André Pirard (1992). Guidelines to use 8‑bit character codes.

URL:ftp://ftp.ulg.ac.be//pub/docs/iso8859/iso8859.networking

Informe redactado para IWE por Carles Bellver Torlà . Centre de Processament de Dades de la Universitat Jaume I

bellverc ARROBA si.uji.es

Enlace del artículo:
http://www.elprofesionaldelainformacion.com/contenidos/1995/abril/iso_8859_sopa_de_caracteres.html