[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

AI.6 Soporte internacional en MS-DOS

Emacs en MS-DOS soporta los mismos juegos de caracteres internacionales que en GNU, Unix y otras plataformas (see section International Character Set Support), incluyendo sistemas de codificación para convertir entre los diferentes juegos de caracteres. Sin embargo, debido a incompatibilidades entre MS-DOS/MS-Windows y otros sistemas, hay diversos aspectos de este soporte específicos de DOS que ud. debería tener en cuenta. Este apartado describe dichos aspectos.

M-x dos-codepage-setup

Establece los sistemas de presentación y codificación de Emacs de acuerdo con la página de códigos activa de DOS.

M-x codepage-setup

Crea un sistema de codificación para cierta página de códigos DOS.

MS-DOS está diseñado para soportar un juego de caracteres con 256 caracteres en cualquier momento dado, pero le ofrece una variedad de juegos de caracteres para elegir. Los juegos de caracteres alternativos se conocen comoPáginas de códigos DOS. Cada página de códigos incluye los 128 caracteres ASCII, pero los otros 128 caracteres (códigos 128 a 255) varían de una página de códigos a otra. Cada página de códigos DOS se identifica por un número de 3 dígitos, como 850, 862, etc.

En contraste con X, que le permite usar varios tipos de letra al mismo tiempo, normalmente MS-DOS no permite usar varias páginas de código en una misma sesión. MS-DOS fue diseñado para cargar una sola página de códigos en el arranque del sistema, y requiere que ud. reinicie para poder cambiarla(19). La misma limitación se aplica cuando corre ejecutables de DOS en otros sistemas como MS-Windows.

Si invoca Emacs en MS-DOS con la opción `--unibyte' (see section Opciones iniciales), Emacs no lleva a cabo ninguna conversión de los caracteres no ASCII. En lugar de eso, lee y graba cualquier carácter no ASCII literalmente, y envía sus códigos de 8 bits literalmente a la pantalla. Luego, Emacs unibyte en MS-DOS soporta la página de códigos activa, cualquiera que esta sea, pero no puede siquiera representar cualquier otro carácter.

Para operación multibyte en MS-DOS, Emacs necesita saber cuáles caracteres puede mostrar la página de códigos DOS elegida. Así que pregunta al sistema tempranamente al inicio para obtener el número de la página de códigos elegida, y almacena el número en la variable dos-codepage. Algunos sistemas devuelven el valor predeterminado de 437 para la página de códigos activa, aunque la página de códigos real sea diferente. (Típicamente esto sucede cuando usa la página de códigos incorporada en el hardware de gráficos). Ud. puede especificar una página de códigos distinta para usar en Emacs ajustando la variable dos-codepage en su archivo de inicio.

Emacs Multibyte únicamente soporta ciertas páginas de códigos DOS: aquellas que pueden mostrar escrituras del Lejano Oriente, como la página de códigos japoneses 932, y aquellas que codifican un único juego de caracteres ISO 8859.

Las páginas de códigos del Lejano Oriente pueden mostrar directamente uno de los juegos de caracteres de MULE para dichos países, así Emacs simplemente adopta el sistema de codificación apropiado de la terminal que esté soportado por la página de códigos. Las características especiales descritas en el resto de este apartado están relacionadas principalmente con las páginas de códigos que codifican juegos de caracteres ISO 8859.

Para las páginas de códigos que corresponden a uno de los juegos de caracteres ISO, Emacs conoce el nombre del juego de caracteres según el número de la página de códigos. Emacs crea automáticamente un sistema de codificación para soportar la lectura y grabación de archivos que usan la página de códigos activa, y usa dicho sistema de codificación por defecto. El nombre de este sistema de codificación es cpnnn, donde nnn es el número de página de código.(20)

Todos los sistemas de codificación cpnnn usan la letra `D' (de "DOS") como indicador en la línea de modo. Ya que el sistema de de codificación de la terminal y el sistema de codificación por defecto para E/S de archivos se establecen al sistema de codificación cpnnn adecuado al inicio, es normal que la línea de modo comience con `-DD\-' en MS-DOS. @xref{Línea de modo}. Las terminales DOS del Lejano Oriente no emplean los sistemas de codificación cpnnn, y así su línea de modo inicial se ve como la predeterminada de Emacs.

Ya que el número de página de código también indica el sistema de escritura que ud. está utilizando, Emacs ejecuta automáticamente set-language-environment para seleccionar el entorno idiomático para dicho sistema de escritura (@pxref{Entornos idiomáticos}).

Si un búfer contiene un carácter que pertenece a algún otro juego de caracteres ISO 8859, y no el que soporta página de códigos DOS seleccionada, Emacs lo muestra usando una secuencia de caracteres ASCII. Por ejemplo, si la página de códigos activa no tiene un glifo para la letra `ò' (`o' minúscula con acento grave), se visualiza como `{`o}', donde las llaves sirven como indicador visual de que es un solo carácter. (Esto puede parecer incómodo para algunos caracteres no latinos, como los griegos o hebreos, pero todavía es legible para alguien que conoce el idioma). Aunque el carácter puede ocupar varias columnas en la pantalla, es realmente un carácter solo, y todos los comandos de Emacs lo consideran como uno.

No todos los caracteres de las páginas de códigos DOS corresponden a caracteres ISO 8859: algunos se usan para otros propósitos, como los caracteres para dibujar recuadros y otros gráficos. Emacs mapea estos caracteres con dos juegos de caracteres especiales llamados eight-bit-control y eight-bit-graphic, y los muestra como sus glifos IBM. Sin embargo, ud. debería tener en cuenta que otros sistemas podrían mostrar dichos caracteres de distinta forma, así que debería evitarlos en textos que pudieran ser copiados a otro sistema operativo, o incluso a otra máquina DOS que utilizara una página de códigos distinta.

Emacs soporta muchos juegos de caracteres además de ISO 8859, pero no puede mostrarlos en MS-DOS. Entonces si uno de estos caracteres multibyte aparece en un búfer, Emacs en MS-DOS los muestra como especifique la variable dos-unsupported-character-glyph; por omisión, este glifo es un triángulo vacío. Use el comando C-u C-x = para mostrar el código real y el juego de caracteres de dichos caracteres. @xref{Info de posición}.

Por defecto, Emacs define un sistema de codificación para soportar la página de códigos activa. Para definir un sistema de codificación para otra página de códigos (p.ej. para visitar un archivo escrito con una máquina DOS de otro país), use el comando M-x codepage-setup. El mismo pregunta el código de 3 dígitos de la página de códigos, con completamiento, y luego crea el sistema de codificación para la página de códigos especificada. Ud. puede entonces usar el nuevo sistema de codificación para leer y grabar archivos, pero debe especificar el sistema explícitamente para el comando de archivo cuando desee usarlo. (@pxref{Especificar codificación}).

Dichos sistemas de codificación también son útiles para visitar un archivo codificado con una página de códigos DOS, utilizando Emacs bajo otro sistema operativo.

MS-Windows provee sus propias páginas de códigos, que son distintas a las páginas de códigos DOS para la misma configuración regional. Por ejemplo, la página de códigos 850 de DOS soporta el mismo conjunto de caracteres que la página de códigos 1252 de Windows, etc. La versión para MS-Windows de Emacs usa la página de códigos activa para la pantalla cuando se invoca con la opción `-nw'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by Roberto on abril, 2 2007 using texi2html 1.76.