La Taberna del Grumete: Al Menú Taberna Grumete

MIME (1) y los caracteres especiales (acentos y eñes)

Autor: Antonio Caravantes (ac@ctv.es), 06-97


 

En principio el correo electrónico se diseñó como un sistema para transmitir pequeños mensajes de texto. Se habilitó un juego de 128 caracteres (del 0 al 127) que resultaba común a casi todas las máquinas y sistemas operativos implicados (se trataba del código ASCII (2) básico, de 7 bits). Renunciar al octavo bit aumentaba la compatibilidad entre sistemas, pero dejaba en fuera de juego a los caracteres habituales de otros idiomas, como las eñes y las vocales acentuadas; estos caracteres especiales utilizan códigos extendidos que se ubican en las posiciones superiores al carácter 127 y no resultan compatibles entre los diferentes sistemas operativos.

Los angloparlantes no sintieron que ese problema fuese un asunto urgente, pero enseguida se dieron cuenta de que sería muy útil habilitar algún mecanismo que permitiese incluír en los mensajes de correo información más compleja. Querían transmitir imágenes, programas, ficheros de cualquier clase. Esos datos sí que utilizaban el octavo bit. El problema es que querían mantener el sistema de correo con 7 bits y añadir el transporte de ficheros constituidos por conjuntos de 8 bits. ¿Cómo lograrlo? La solución podía ser un sistema "traductor" que convirtiese los ficheros a textos, bajo apariencia de caracteres (de 7 bits). La transformación fue denominada UUENCODE (3) y con ello se conseguía transmitir esos ficheros por el correo. Los ficheros eran incluidos como texto (incomprensible), con una cabecera y un final que delimitaban el texto correspondiente al contenido del fichero. El receptor del mensaje debía utilizar un programa descodificador que utiliza procedimientos inversos, UUDECODE (3), para generar nuevamente el fichero original. Al principio las transformaciónes resultaban un poco engorrosas, pero pronto aparecieron programas automáticos que facilitaban la tarea. Incluso surgieron programas de correo que evitaban la visualización del texto incomprensible que correspondía al fichero: más transparencia y simplificación para el usuario.

El sistema UUENCODE/UUDECODE aún se emplea con frecuencia en los grupos de noticias; y todavía existen programas independientes que realizan esta conversión. Con esto ya se había superado el asunto de la transmisión de ficheros. Pero todavía había problemas, el sistema aún tenía defectos de planteamiento que resultaban difíciles de superar. Por otro lado, los usuarios de otros idiomas empezaban a presionar para que las transmisiones de correo incluyesen los caracteres extendidos (las eñes, vocales acentuadas y otros similares).

Se reunieron los gurús de las altas esferas y llegaron a una conclusión: se necesitaba un nuevo estándar más capaz y que también admitiera los caracteres especiales. El nuevo sistema fue bautizado como MIME (1), teniendo la ventaja de que también resultaba compatible con los sistemas precedentes. MIME permite transmitir caracteres especiales, sin que ello ocasione trastornos. Aunque el emisor y el receptor utilicen sistemas operativos distintos, MIME facilita la conversión de esos caracteres, de forma que siempre resulten correctamente transmitidos. En verdad, decir "SIEMPRE" es demasiado optimista; al final hay otras variables que pueden causar complicaciones, pero MIME es un avance importante en las transmisiones de correo.

Los problemas que todavía existen se deben a varias razones. La primera es que MIME puede funcionar de varias formas distintas. Por un lado existe la posibilidad de usar MIME con transmisión de 8 bits por carácter, aunque lo habitual es emplear la otra alternativa, denominada "Quoted Printable" (algo así como "código imprimible"). El sistema Quoted Printable sigue manejando 7 bits, usando caracteres adicionales para representar los signos especiales; así, el carácter "é" (letra e acentuada) se transmite como una secuencia de tres caracteres "=E9", que luego debiera ser correctamente interpretado por el sistema MIME receptor. Si la configuración de tu programa permite activar la posibilidad "Quoted Printable", hazlo; es la opción adoptada mayoritariamente. También es más segura, puesto que el mensaje tendrá que pasar por muchas máquinas intermedias, algunas de las cuales manejan inadecuadamente los caracteres de 8 bits.

Por otro lado, MIME puede utilizar diferentes conjuntos de caracteres para la transmisión. Habitualmente se usa el juego denominado "ISO 8859-1", también llamado "Latin-1" (4). Aunque algunos programas permiten elegir otros juegos de caracteres alternativos, siempre es preferible utilizar el que se ha indicado, por ser el más utilizado.

Aún puede haber otro tipo de problemas, derivados de las características concretas de los programas de correo, puesto que algunos no implementan el estandar MIME de una forma totalmente correcta o completa. Hay dos aspectos que presentan dificultades con cierta frecuencia y que vamos a comentar: MIME transmite el texto del mensaje sin insertar artificiosos cambios de línea. Algunos programas insertan un cambio de línea de tipo "técnico" entre cada dos líneas del mismo párrafo. Con MIME, eso no debiera suceder; el cambio de línea se contempla igual que en los procesadores de texto, cuando el usuario haya marcado deliberadamente el final de un párrafo pulsado la tecla Return (también conocida como tecla Intro, Enter o tecla de cambio de línea). Así, el texto de un párrafo largo se transmite todo seguido, como una línea extremadamente larga. Se supone que el programa receptor siempre debe ser capaz de recomponer la presentación, adaptándo el texto a la ventana visual que se use en cada momento. Este asunto concreto se aborda de forma específica en otra página dedicada al Tamaño de las líneas en los mensajes de correo electrónico.

La otra peculiaridad que persentan algunos programas consiste en la inadecuada manipulación de ciertos datos. Todos los programas que usan MIME hacen un tratamiento bastante correcto de los caracteres incluidos en el cuerpo del mensaje. Pero algunos no hacen lo mismo respecto a los textos de la cabecera del mensaje. Estos datos son los siguientes:

-Nombre y dirección del remitente.
-Nombre y dirección del destinatario (o destinatarios).
-Título (asunto, tema o "subjet").

Puesto que algunos programas todavía no implementan el adecuado procesamiento MIME para estos datos concretos, conviene ser muy prudente (o reprimirse) a la hora de introducir acentos y eñes en estas casillas.

MIME también añade avances importantes en las transmisiones de ficheros. Por ejemplo, es más eficaz para controlar los nombres y las características de los ficheros enviados. Pero estos detalles resulta de menor transcendencia para el internauta de a pie, que siempre encuentra muy molesto el problema de los caracteres especiales.

Conclusiones:
El éxito de una transmisión de correo depende de la coordinada configuración de ambos sistemas: emisor y receptor del mensaje. La transmisión de acentos y eñes solo será posible si ambos utilizan MIME; con esto ya es muy probable que se puedan evitar todos los conflictos, aunque no es seguro. En algunos programas, la opción MIME debe ser configurada frente a otras alternativas (UUENCODE o, sencillamente, no-MIME); en otros casos, MIME viene preconfigurado y no es posible desactivarlo.

Para garantizar absolutamente la correcta transferencia de caracteres especiales habrá que verificar que ambos programas usan métodos idénticos; es muy conveniente verificar que el programa se halla configurado con las opciones "Quoted Printable" y con el juego de caracteres "ISO 8859-1" (ó "Latin-1"). En algunos programas es posible variar estos parámetros; otros no permiten su manipulación, pero los traen configurados por defecto.

Si tu programa de correo no tiene posibilidades de utilizar MIME, seguramente tendrás muchos problemas con estos caracteres; puesto que la mayoría de internautas ya emplean este sistema, será muy conveniente que vayas pensando en cambiar tu programa de correo para conseguir otro más actualizado que incorpore MIME. Todos los buenos programas que se distribuyen en la actualidad incorporan esta posibilidad, incluyendo algunos programas gratuitos y otros que son de tipo shareware.

Se puede encontrar información más detallada en la dirección siguiente, de la que se ha obtenido buena parte de la información aquí detallada.
http://idg.es/iworld/especial/correo.html

También puede obtenerse otra información adicional en la página Acentos y eñes en la lista, que aborda un problema peculiar de la lista Grumetes y algunas otras listas de distribución.


(1) MIME
Acrónimo de Multipurpose Internet Mail Extensions (Extensiones de Correo de Internet Multifunción). Estándar para adjuntar archivos a mensajes de correo de Internet. Archivos que no son de texto incluyen gráficos, documentos de procesadores de texto formateados, archivos de sonido, etc. Un programa de correo electrónico se dice que si puede recibir y enviar archivos usando un estándar MIME. Cuando se envían archivos de no texto, usando el estándar MIME se convierten (codifican) a texto, aunque, en realidad, el texto resultante no se puede leer (no es legible). El estándar MIME es una manera de especificar tanto el tipo de archivo que se envía como el método que se debería usar para devolverle su formato original. Además de software de correo electrónico, el estándar MIME se usa para identificar los archivos que se envían a clientes Web, nuevos formatos de ficheros se pueden acomodar simplemente actualizando la lista de browsers de pares de tipos MIME y el software apropiado para manejar cada tipo. (Información consultada en el Glosario de Términos de Internet de la Universidad de Alcalá)


(2) ASCII
Acrónimo del código estándar americano para el intercambio de información (American Standard Code for Information Interchange). Es el código estándar de conjunto de caracteres que cualquier ordenador puede entender, usado para representar las letras latinas, en mayúsculas, minúsculas, números, puntuación, etc. Hay 128 códigos estándar ASCII, cada uno de los cuales puede representarse por un número binario de 7 dígitos. Sin embargo, otros conjuntos de caracteres como Latin-1 están comenzando a usarse. Los documentos HTML no se limitan a ASCII. (Información consultada en el Glosario de Términos de Internet de la Universidad de Alcalá)


(3) UUENCODE/UUDECODE
Las letras UU hacen referencia a "Unix to Unix", comunicaciones entre sistemas Unix ()igual que en el más conocido UUCP, que significa "Unix to Unix Copy Protocol", protocolo de copia entre sistemas Unix). ENCODE significa "encriptación", "cifrado" o "codificación". Opuestamente, DECODE hace referencia a "des-encriptación", "descifrado" o "descodificación" (por cierto, "decodificación" no es correcto). Frecuentemente se usa el término UUENCODE para hacer referencia al sistema conjunto que implica las dos operaciones, UUENCODE y UUDECODE. El sistema UUENCODE/UUDECODE también se reconoce como BinHex (Binario Hexadecimal), aunque esta denominación es menos precisa y se suele aplicar a otras cuestiones no relacionadas con el correo electrónico.


(4) ISO 8859-1, también llamado Latin-1
Se trata de un juego de caracteres concreto, que incluye 256 caracteres (los 128 del ASCII básico y otros 128 adicionales) y que está pensado para representar los signos utilizados por el idioma español y otras lenguas europeas. Es el resultado de un acuerdo entre organismos y fabricantes de software. En el mundo de los PC, IBM adoptó esta norma y la denominó tabla de códigos 850; MicroSoft la llamó ANSI o ANSI-code en Windows. Otros, como Macintosh, todavía no tienen implementada esta normativa. Por cierto, "Latin-1" se escribe sin acento.