Provided by: manpages-es_1.55-10_all bug

NOMBRE

       console_codes - secuencias de escape y control de la consola de Linux

DESCRIPCI'ON

       La consola de Linux implementa un vasto subconjunto de los controles de
       terminal de la VT102 y del estandar ECMA-48/ISO  6429/ANSI  X3.64,  mas
       ciertas  secuencias de modo privadas para cambiar la paleta de colores,
       asociaciones de conjuntos de caracteres,  etc.   En  las  descripciones
       tabulares  de  abajo,  la  2a  columna  da los mnemonicos ECMA-48 o DEC
       (estos, prefijados por DEC) para la funcion dada.  Las  secuencias  sin
       un mnemonico no son ni ECMA-48 ni VT102.

       Despues de haber hecho todo el procesamiento de salida normal, y de que
       un flujo  de  caracteres  llega  al  controlador  de  consola  para  la
       impresion de verdad, la 1a cosa que ocurre es una traduccion del codigo
       empleado para el procesamiento al codigo empleado para la impresion.

       Si la consola esta en el modo UTF-8, entonces los bytes que  llegan  se
       ensamblan  1o  a  los  codigos  de  16  b  Unicode. Si no, cada byte se
       transforma segun la tabla de asociaciones en curso (que lo traduce a un
       valor  Unicode).  Vea mas abajo la seccion CONJUNTOS DE CARACTERES para
       la discusion sobre esto.

       En el caso normal, el valor Unicode se convierte a un indice de tipo de
       letra, y este se almacena en memoria de video, de forma que aparezca en
       la pantalla el grafo correspondiente (segun se encuentra en la  ROM  de
       video).  Observe que el empleo de Unicode (y el diseno del hardware del
       PC) nos permite usar 512 grafos diferentes simultaneamente.

       Si el valor actual  Unicode  es  un  caracter  de  control,  o  estamos
       actualmente  procesando  una  secuencia  de escape, el valor se tratara
       especialmente. En vez de convertirse a un indice de tipo y  presentarse
       como  un grafismo, puede lanzar un movimiento del cursor u otra funcion
       de control.  Vea la seccion CONTROLES DE LA CONSOLA DE LINUX abajo para
       la discusion sobre esto.

       Generalmente  no  es una buena idea codificar directamente controles de
       terminal en programas. Linux tiene una base  de  datos  terminfo(5)  de
       capacidades  de  terminales.   En  vez  de  emitir a mano secuencias de
       escape de la consola, Ud. deberia casi siempre utilizar una  biblioteca
       de  pantalla  que  consultara terminfo o una utilidad, como ncurses(3),
       tput(1), o reset(1).

CONTROLES DE LA CONSOLA DE LINUX

       Esta seccion describe todos los caracteres de control y  secuencias  de
       escape  que  llaman  a  funciones especiales (i.e., cualquier otra cosa
       distinta a escribir un grafo en la localizacion del cursor en curso) en
       la consola de Linux.

   Caracteres de control
       Un  caracter  lo  es de control si (antes de la transformacion segun la
       tabla de asociaciones) tiene uno de los 14 codigos 00 (NUL), 07  (BEL),
       08 (BS), 09 (HT), 0a (LF), 0b (VT), 0c (FF), 0d (CR), 0e (SO), 0f (SI),
       18 (CAN), 1a (SUB), 1b (ESC), 7f (DEL).  Uno puede establecer  un  modo
       de  `mostrar caracteres de control' (vea mas abajo), y permitir que los
       codigos 07, 09, 0b, 18, 1a, 7f se muestren como grafos.  Por otro lado,
       en  modo  UTF-8  todos  los  codigos  00-1f se miran como caracteres de
       control, sin importar ningun modo `mostrar caracteres de control'.

       Si tenemos un caracter de control, se actua inmediatamente y  luego  se
       descarta  (incluso  en medio de una secuencia de escape) y la secuencia
       de escape continua  con  el  siguiente  caracter.   (Sin  embargo,  ESC
       empieza  una  nueva  secuencia  de  escape,  posiblemente abortando una
       anterior no acabada,  y  CAN  y  SUB  abortan  cualquier  secuencia  de
       escape).   Los  caracteres  de control reconocidos son BEL, BS, HT, LF,
       VT, FF, CR, SO,  SI,  CAN,  SUB,  ESC,  DEL,  CSI.  Hacen  lo  que  uno
       esperaria:

       BEL (0x07, ^G) pita;

       BS  (0x08,  ^H) va un espacio atras a la columna anterior (pero no pasa
              del principio de la linea);

       HT (0x09, ^I) va a la siguiente parada de tabulacion o al final  de  la
              linea si no hay antes una parada de tabulacion;

       LF  (0x0A,  ^J),  VT  (0x0B,  ^K) y FF (0x0C, ^L) todos dan un salto de
              linea;

       CR (0x0D, ^M) da un retorno de carro;

       SO (0x0E, ^N) activa el conjunto de caracteres G1, y si  esta  activado
              LF/NL (modo de nueva linea), tambien un retorno de carro;

       SI (0x0F, ^O) activa el conjunto de carcteres G0;

       CAN (0x18, ^X) y SUB (0x1A, ^Z) interrumpen secuencias de escape;

       ESC (0x1B, ^[) empieza una secuencia de escape;

       DEL (0x7F) no es tenido en cuenta;

       CSI (0x9B) es equivalente a ESC [.

   Secuencias de ESC, pero no CSI
       ESC c     RIS      Inicio.
       ESC D     IND      Salto de linea.
       ESC E     NEL      Nueva linea.
       ESC H     HTS      Pone parada tab en esta columna.
       ESC M     RI       Salto de linea inverso.
       ESC Z     DECID    DEC identificacion privada. El nucleo
                          devuelve la cadena ESC [ ? 6 c, diciendo
                          que es una VT102.
       ESC 7     DECSC    Salva el estado actual (cordenadas del cursor,
                          atributos, conjuntos de caracteres apuntados por G0, G1).
       ESC 8     DECRC    Restaura el estado salvado mas reciente por ESC 7.
       ESC [     CSI      Introductor de secuencia de control
       ESC %              Empieza la secuencia de seleccion de conjunto de caracteres
       ESC % @               Selecciona el predeterminado (ISO 646 / ISO 8859-1)
       ESC % G               Selecciona UTF-8
       ESC % 8               Selecciona UTF-8 (obsoleto)
       ESC # 8   DECALN   DEC prueba de alineacion en pantalla - la llena de E's.
       ESC (              Empieza secuencia de definicion del conjunto G0
       ESC ( B               Selecciona predeterminado (asociacion ISO 8859-1)
       ESC ( 0               Selecciona asociacion de graficos vt100
       ESC ( U               Selecciona ninguna asociacion - derecho a la ROM
       ESC ( K               Selecciona asociacion del usuario - la que se carga con
                             la utilidad mapscrn(8).
       ESC )              Empieza la secuencia de definicion de G1
                          (seguido por uno de B, 0, U, K, como arriba).
       ESC >     DECPNM   Pone el teclado auxiliar en modo numerico
       ESC =     DECPAM   Pone el teclado auxiliar en modo aplicacion
       ESC ]     OSC      (Deberia ser: Orden del sistema operativo)
                          ESC ] P nrrggbb: pone paleta, con parametro
                          dado en 7 digitos hexadecimales tras la P final :-(.
                          Aqui n es el color (0-15), y rrggbb indica

                          los valores rojo/verde/azul (0-255).
                          ESC ] R: restaura paleta

   Secuencias ECMA-48 CSI
       CSI  (o  ESC  [) es seguido por una secuencia de parametros, como mucho
       NPAR (16), que son los numeros decimales separados por punto  y  comas.
       Un  parametro  vacio  o  ausente  se  toma  como  0.   La  secuencia de
       parametros puede ir precedida por un signo de interrogacion.

       Sin embargo, tras CSI [ (o ESC [ [) se lee  un  caracter  solo  y  esta
       secuencia  entera  no es tenida en cuenta. (La idea es no hacer caso de
       una tecla de funcion que se muestra.)

       La accion de una secuencia CSI se determina por su caracter final.

       @   ICH       Insertar el No indicado de caracteres blancos
       A   CUU       Mover cursor arriba el No indicado de filas
       B   CUD       Mover cursor abajo el No indicado de filas
       C   CUF       Mover cursor a la derecha el No indicado de columnas
       D   CUB       Mover cursor a la izquierda el No indicado de columnas
       E   CNL       Mover cursor abajo el No indicado de filas, a la columna 1
       F   CPL       Mover cursor arriba el No indicado de filas, a la columna 1
       G   CHA       Mover cursor a la columna indicada en la fila actual
       H   CUP       Mover cursor a la fila y columna indicadas (origen en 1,1)
       J   ED        Borrar pantalla (p. o.: desde el cursor al final de la pantalla).
                     ESC [ 1 J: borrar desde el comienzo hasta el cursor.
                     ESC [ 2 J: borrar la pantalla entera.
       K   EL        Borrar linea (p.o.: desde el cursor al final de la linea).
                     ESC [ 1 K: borrar desde el comienzo de la linea al cursor
                     ESC [ 2 K: borrar la linea entera.
       L   IL        Insertar el No indicado de lineas en blanco
       M   DL        Borrar el No indicado de lineas
       P   DCH       Borrar el No indicado de caracteres en la linea actual
       X   ECH       Borrar el No indicado de caracteres en la linea actual
       a   HPR       Mover cursor a la derecha el No indicado de columnas
       c   DA        Reponder ESC [ ? 6 c: `Yo soy una VT102'.
       d   VPA       Mover cursor a la fila y columna indicadas
       e   VPR       Mover cursor abajo el No indicado de filas
       f   HVP       Mover cursor a la fila y columna indicadas
       g   TBC       Sin parametro: quita parada TAB en la posicion actual
                     ESC [ 3 g: borra todas las paradas de tabulacion
       h   SM        Establece Modo (vea abajo).
       l   RM        Restablece Modo (vea abajo).
       m   SGR       Establece atributos (vea abajo).
       n   DSR       Informe de estado (vea abajo).
       q   DECLL     Establece los LEDs del teclado.
                     ESC [ 0 q: apaga todos los LEDs
                     ESC [ 1 q: pone LED Bloq. Despl.
                     ESC [ 2 q: pone LED Bloq. Num.
                     ESC [ 3 q: pone LED Bloq. Mayus.
       r   DECSTBM   Establece region de rodadura; los parametros son la fila de arriba y abajo
       s   ?         Salva la localizacion del cursor
       u   ?         Restaura la localizacion del cursor.
       `   HPA       Mover cursor a la columna indicada en la fila indicada

   ECMA-48 Pone modo Gr'afico
       La secuencia ECMA-48 SGR  ESC [ <parametros> m establece los  atributos
       de  la  pantalla.   Se  pueden  poner  varios  atributos  en  la  misma
       secuencia.

       par   resultado
       0     restablece todos los atributos a sus valores predeterminados
       1     pone negrillas
       2     pone medio brillo (simulado con color en una pantalla a color)

       4     pone subrayado (simulado con color en una pantalla a color)
             (los colores para simular disminucion o subrayado se ponen con
             ESC ] ...)
       5     pone intermitencia
       7     pone video inverso
       10    restaura asociacion seleccionada, indicador de control de
             pantalla y cambia el indicador meta
       11    selecciona no asociacion, pone indicador de control de
             pantalla, restaura indicador de cambio meta
       12    selecciona no asociacion, pone indicador de control de
             pantalla, pone indicador de cambio meta (que hace que el bit
             mas alto de un byte cambie antes de que se haga la traduccion
             de la tabla de asociacion.)
       21    pone intensidad normal (esto no es compatible con ECMA-48)
       22    pone intensidad normal
       24    quita subrayado
       25    quita intermitencia
       27    quita video inverso
       30    pone negro
       31    pone rojo
       32    pone verde
       33    pone marron
       34    pone azul
       35    pone rosa
       36    pone celeste
       37    pone blanco
       38    pone subrayado, color predeterminado
       39    quita subrayado, pone color predeterminado
       40    pone negro de fondo
       41    pone rojo de fondo
       42    pone verde de fondo
       43    pone marron de fondo
       44    pone azul de fondo
       45    pone rosa de fondo
       46    pone celeste de fondo
       47    pone blanco de fondo
       49    pone el color de fondo predeterminado

   Interruptores de Modo ECMA-48
       ESC [ 3 h
              DECCRM (por omision desactivado): Mostrar caracteres de control

       ESC [ 4 h
              DECIM (por omision desactivado): Poner modo de insercion

       ESC [ 20 h
              LF/NL (por omision desactivado): Automaticamente seguir a LF, VT
              o FF con CR.

   'Ordenes de Informe de Estado ECMA-48
       ESC [ 5 n
              Informe  de estado de dispositivo (DSR): La respuesta es ESC [ 0
              n (Terminal OK).

       ESC [ 6 n
              Informe de posicion de cursor (CPR): La respuesta es ESC [ y ; x
              R, donde x,y es la localizacion del cursor.

   Secuencias de Modo Privado DEC (DECSET/DECRST).
       Estas no se describen en ECMA-48. Listamos las secuencias de Establecer
       Modo; las de Reestablecer Modo se obtienen reemplazando la hache  final
       por ele.

       ESC [ ? 1 h
              DECCKM  (por  omisison  desactivado):  Cuando esta activado, las
              teclas de cursor envian un prefijo ESC O, en vez de ESC [.

       ESC [ ? 3 h
              DECCOLM (por omision desactivado = 80 columnas): interruptor  de
              modo  80/132  columnas.   En los fuentes del controlador se hace
              notar que esto solo no basta; alguna utilidad  de  usuario  como
              resizecons(8)  tiene que cambiar los registros de hardware en la
              tarjeta de video de consola.

       ESC [ ? 5 h
              DECSCNM (por omision desactivado): Pone el modo de video inverso

       ESC [ ? 6 h
              DECOM  (por  omision  desactivado):  Cuando  esta  activado,  el
              direccionamiento  del  cursor  es relativo a la esquina superior
              izquierda de la region de rodadura.

       ESC [ ? 7 h
              DECAWM (por omision activado):  Activa  el  paso  automatico  de
              renglon.  En  este  modo,  un  caracter  grafico emitido tras la
              columna 80 (o la 132 si esta activado DECCOLM) fuerza un  cambio
              al principio de la siguiente linea.

       ESC [ ? 8 h
              DECARM  (por  omision  activado):  Activa la auto-repeticion del
              teclado

       ESC [ ? 9 h
              Informe de Raton X10 (por  omision  desactivado):  Establece  el
              modo de informe a 1 (o lo restaura a 0) - vea abajo.

       ESC [ ? 25 h
              DECCM (por omision activado): Hace visible el cursor.

       ESC [ ? 1000 h
              Informe  de  Raton  X11  (por omision desactivado): Establece el
              modo de informe a 2 (o lo restaura a 0) - vea abajo.

   Secuencias Privadas de Consola de Linux CSI
       Las siguientes secuencias no son  ni  ECMA-48  ni  VT102  nativas.  Son
       nativas  al  controlador  de consola de Linux. Los colores estan en los
       parametros SGR: 0 = negro, 1 = rojo, 2 = verde, 3 = marron, 4 = azul, 5
       = rosa, 6 = celeste, 7 = blanco.

       ESC [ 1 ; n ]       Pone el color n como el de subrayado
       ESC [ 2 ; n ]       Pone el color n como el disminuido
       ESC [ 8 ]           Hace al color actual el de los atributos predeterminados
       ESC [ 9 ; n ]       Pone el tiempo de espera del blanqueado de la terminal a n min.
       ESC [ 10 ; n ]      Establece la frecuencia del pito en Hz.
       ESC [ 11 ; n ]      Establece la duracion del pitido en ms.
       ESC [ 12 ; n ]      Trae al frente la consola especificada.
       ESC [ 13 ]          Quita el blanco de la pantalla.
       ESC [ 14 ; n ]      Establece el intervalo de apagado VESA en min.

CONJUNTOS DE CARACTERES

       El  nucleo sabe de 4 traducciones de bytes a simbolos de la pantalla de
       la consola. Las cuatro tablas son: a) Latin1 -> PC,  b) graficos  VT100
       -> PC, c) PC -> PC, d) definida por el usuario.

       Hay dos conjuntos de caracteres, llamados G0 y G1, y uno de ellos es el
       actual. (Inicialmente G0.)

       Teclear ^N hace que G1 sea el actual, ^O hace a G0 el actual.

       Estas variables G0 y G1 apuntan a una tabla de traduccion, y pueden ser
       cambiadas  por  el  usuario.  Inicialmente apuntan a las tablas a) y b)
       respectivamente.  Las secuencias ESC ( B y ESC ( 0 y ESC ( U y ESC (  K
       causan  que  G0 apunte a la tabla a), b), c) y d) respectivamente.  Las
       secuencias ESC ) B y ESC ) 0 y ESC ) U y ESC ) K causan que G1 apunte a
       la tabla a), b), c) y d), respectivamente.

       La  secuencia ESC c provoca una puesta a cero de la terminal, que es lo
       que uno quiere cuando la pantalla esta liada.  El  otrora  truco  "echo
       ^V^O"  solamente hace G0 actual, pero no hay garantias de que G0 apunte
       a la tabla a).  En algunas distribuciones hay un programa reset(1)  que
       simplemente hace "echo ^[c".  Si su entrada de terminfo para la consola
       es correcto (y  tiene  una  entrada  rs1=\Ec),  entonces  "tput  reset"
       tambien funcionara.

       La  tabla  de  asociacion  definida  por  el  usuario puede ponerse con
       mapscrn(8).  El resultado de la asociacion es que si hay un  simbolo  c
       que  se  imprime, se envia a la memoria de video el simbolo s = map[c].
       El mapa de bits  que  corresponde  a  s  se  encuentra  en  la  ROM  de
       caracteres, y puede cambiarse mediante setfont(8).

PISTA DEL RAT'ON

       La  facilidad  de  seguimiento  de  pista del raton sirve para devolver
       informes de estado del raton  compatibles  con  xterm.  Puesto  que  el
       controlador de consola no tiene forma de conocer el dispositivo ni tipo
       del raton, estos informes se devuelven en el flujo  de  entrada  de  la
       consola solo cuando del controlador de terminal virtual recibe un ioctl
       de actualizacion de raton. Estos ioctls deben  ser  generados  por  una
       aplicacion de usuario que haga uso del raton como el duende gpm(8).

       Los  parametros  para todas las secuencias de escape de pista del raton
       generadas por xterm codifican los parametros  numericos  en  un  simple
       caracter  como  valor+040.   Por  ejemplo,  `!'  es  1.   El sistema de
       coordenadas de la pantalla empieza en 1.

       El modo de compatibilidad X10 envia una secuencia de escape  cuando  se
       pulsa  un  boton  codificando  la  localizacion  y  el  boton del raton
       pulsado.  Esto se activa enviando ESC [ ? 9 h y se desactiva con ESC  [
       ?  9  l.   Cuando  se  pulsa  un  boton,  xterm  envia  ESC  [ M bxy (6
       caracteres).  Aqui b es boton-1, y x y y son las coordenadas x e y  del
       raton  cuando se pulso el boton.  Esto es el mismo codigo que el nucleo
       tambien produce.

       El modo de pista normal (no implementado en  Linux  2.0.24)  envia  una
       secuencia  de  escape  cuando se pulas o se libera un boton. Tambien se
       envia informacion de modificador. Se habilita enviando ESC [ ? 1000 h y
       se  inhabilita  con  ESC  [ 1000 l.  Cuando se pulas o libera un boton,
       xtermenvia ESC [ M bxy.  Los dos bits bajos de b codifican  informacion
       del boton: 0=MB1 pulsado, 1=MB2 pulsado, 2=MB3 pulsado, 3=liberar.  Los
       bits mas altos codifican que modificadores estaban pulsados  cuando  el
       boton  se  hubo  presionado  y  se anaden juntos: 4=Mayusculas, 8=Meta,
       16=Control.  De nuevo x e y son las coordenadas x e  y  del  evento  de
       raton. La esquina superior izquierda es (1,1).

COMPARACIONES CON OTRAS TERMINALES

       Muchos  tipos  diferentes  de terminal se describen, como la consola de
       Linux, como `compatibles VT100'. Aqui se discuten las diferencias entre
       la  consola de Linux y las otras dos mas importantes, la VT102 de DEC y
       la xterm(1).

   Manejo de caracteres de control
       La vt102 tambien reconocia los siguientes caracteres de control:

       NUL (0x00) no era tenido en cuenta;

       ENQ (0x05) lanzaba un mensaje de reconocimiento;

       DC1 (0x11, ^Q, XON) reanudaba la transmision;

       DC3 (0x13, ^S, XOFF) hacia que la vt100 no tuviera en cuenta (y  parara
              la transmision) ningun codigo excepto XOFF y XON.

       El  controlador  de  tty puede habilitar el procesamiento de DC1/DC3 al
       estilo de la VT100.

       El programa xterm (en modo vt100) reconoce los  caracteres  de  control
       BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC.

   Secuencias de Escape
       Secuncias de consola VT100 no implementadas en la consola de Linux:

       ESC N       SS2   Simple cambio 2. (Selecciona el conjunto de caracteres
                         G2 solo para el sgute. caracter.)
       ESC O       SS3   Simple cambio 3. (Selecciona el conjunto de caracteres
                         G3 solo para el sgute. caracter.)
       ESC P       DCS   Cadena de control de dispositivo (acabada por ESC \)
       ESC X       SOS   Comienzo de cadena.
       ESC ^       PM    Mensaje de privacidad (acabado por ESC \)
       ESC \       ST    Terminador de caadena
       ESC * ...         Designa el conjunto de caracteres G2
       ESC + ...         Designa el conjunto de caracteres G3

       El  programa  xterm (en modo vt100) reconoce ESC c, ESC # 8, ESC >, ESC
       =, ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC  P  ...  ESC    ESC  Z
       (responde  ESC  [  ?  1  ;  2  c, `Yo soy una vt100 con opcion de video
       avanzado') y ESC ^ ... ESC  con los mismos significados que los  arriba
       indicados.   Acepta  ESC  (, ESC ), ESC *,  ESC + seguidos por  0, A, B
       para el conjunto de caracteres especiales y lineas de dibujo de DEC, UK
       y  US-ASCII,  respectivamente.  Acepta ESC ] para el establecimiento de
       ciertos recursos:

       ESC ] 0 ; txt BEL     Pone nombre de icono y titulo de ventana como txt.
       ESC ] 1 ; txt BEL     Pone txt como nombre de icono.
       ESC ] 2 ; txt BEL     Pone txt como titulo de ventana.
       ESC ] 4 6 ; log BEL   Cambia el nombre del fichero de registro a log
                             (normalmente deshabilitado por una opcion de tiempo de
                             compilacion)
       ESC ] 5 0 ; fn BEL    Pone fn como el tipo de letra.

       Reconoce lo siguiente con un significado ligeramente modificado:

       ESC 7  DECSC   Salva el cursor
       ESC 8  DECRC   Restaura el cursor

       Tambien reconoce

       ESC F          Cursor a esquina inferior izda. de la pantalla (si
                      permitido por el recurso hpLowerleftBugCompat)
       ESC l          Bloqueo de memoria (por terminales HP).
                      Bloquea la memoria sobre el cursor.
       ESC m          Desbloqueo de memoria (por terminales HP).
       ESC n   LS2    Invoca el conjunto de caracteres G2.
       ESC o   LS3    Invoca el conjunto de caracteres G2.
       ESC |   LS3R   Invoca el conjunto de caracteres G3 como GR.
                      No tiene efecto visible en xterm.
       ESC }   LS2R   Invoca el conjunto de caracteres G2 como GR.
                      No tiene efecto visible en xterm.
       ESC ~   LS1R   Invoca el conjunto de caracteres G1 como GR.
                      No tiene efecto visible en xterm.

       No reconoce ESC % ...

   Secuencias CSI
       El programa xterm (en XFree86 3.1.2G) no  reconoce  los  SGRs  de  modo
       invisible  o parpadeo. Versiones originales X11R6 no reconocen los SGRs
       de establecimiento de colores.   Todas  las  otras  secuencias  CSI  de
       ECMA-48 reconocidas por Linux tambien lo son por xterm, y viceversa.

       El  programa  xterm  reconocera todas las secuencias de Modo Privado de
       DEC listadas arriba, pero ninguna de las secuencias de modo privado  de
       Linux.  Para una discusion sobre las propias secuencias de modo privado
       de xterm, refierase al documento Xterm Control Sequences por Edward Moy
       & Stephen Gildea, disponible con la distribucion X-Window.

FALLOS

       En  2.0.23,  CSI  no  funciona,  y  NUL  es  tenido en cuenta dentro de
       secuencias de escape.

V'EASE TAMBI'EN

       console(4), console_ioctl(4), charsets(7)