Charset#

El módulo añade el charset especificado al campo de cabecera de respuesta Content-Type. Además, el módulo puede convertir datos de un charset a otro, con algunas limitaciones:

  • la conversión se realiza en un solo sentido — del servidor al cliente,

  • solo se pueden convertir charsets de un solo byte

  • o charsets de un solo byte hacia/desde UTF-8.

Ejemplo de Configuración#

include        conf/koi-win;

charset        windows-1251;
source_charset koi8-r;

Directivas#

charset#

Sintaxis

charset charset | off;

Predeterminado

charset off;

Contexto

http, server, location, if in location

Añade el charset especificado al campo de cabecera de respuesta Content-Type. Si este charset es diferente del charset especificado en la directiva source_charset, se realiza una conversión.

El parámetro off cancela la adición del charset al campo de cabecera de respuesta Content-Type.

Un charset puede definirse con una variable:

charset $charset;

En tal caso, todos los posibles valores de una variable deben estar presentes en la configuración al menos una vez en forma de las directivas charset_map, charset o source_charset. Para los charsets utf-8, windows-1251 y koi8-r, es suficiente incluir los archivos conf/koi-win, conf/koi-utf y conf/win-utf en la configuración. Para otros charsets, simplemente hacer una tabla de conversión ficticia funciona, por ejemplo:

charset_map iso-8859-5 _ { }

Además, un charset puede establecerse en el campo de cabecera de respuesta X-Accel-Charset. Esta capacidad puede desactivarse usando las directivas proxy_ignore_headers, fastcgi_ignore_headers, uwsgi_ignore_headers, scgi_ignore_headers y grpc_ignore_headers.

charset_map#

Sintaxis

charset_map charset1 charset2 { ... }

Predeterminado

Contexto

http

Describe la tabla de conversión de un charset a otro. Una tabla de conversión inversa se construye utilizando los mismos datos. Los códigos de caracteres se dan en hexadecimal. Los caracteres faltantes en el rango 80-FF se reemplazan con "?". Al convertir desde UTF-8, los caracteres que faltan en un charset de un byte se reemplazan con "&#XXXX;".

Ejemplo:

charset_map koi8-r windows-1251 {
    C0 FE ; # small yu
    C1 E0 ; # small a
    C2 E1 ; # small b
    C3 F6 ; # small ts
}

Al describir una tabla de conversión a UTF-8, los códigos para el charset UTF-8 deben darse en la segunda columna, por ejemplo:

charset_map koi8-r utf-8 {
    C0 D18E ; # small yu
    C1 D0B0 ; # small a
    C2 D0B1 ; # small b
    C3 D186 ; # small ts
}

Las tablas de conversión completas de koi8-r a windows-1251, y de koi8-r y windows-1251 a utf-8 se proporcionan en los archivos de distribución conf/koi-win, conf/koi-utf y conf/win-utf.

charset_types#

Sintaxis

charset_types mime-type ...;

Predeterminado

charset_types text/html text/xml text/plain text/vnd.wap.wml application/javascript application/rss+xml;

Context

http, server, location

Habilita el procesamiento del módulo en respuestas con los tipos MIME especificados además de text/html. El valor especial * coincide con cualquier tipo MIME.

override_charset#

Sintaxis

override_charset on | off;

Predeterminado

override_charset off;

Contexto

http, server, location, if in location

Determina si debe realizarse una conversión para las respuestas recibidas de un servidor proxy o FastCGI/uwsgi/SCGI/gRPC cuando las respuestas ya llevan un charset en el campo de cabecera de respuesta Content-Type. Si la conversión está habilitada, un charset especificado en la respuesta recibida se utiliza como charset de origen.

Nota

Si se recibe una respuesta en una subpetición, la conversión del charset de la respuesta al charset de la petición principal siempre se realiza, independientemente de la configuración de la directiva override_charset.

source_charset#

Sintaxis

source_charset charset;

Predeterminado

Contexto

http, server, location, if in location

Define el charset de origen de una respuesta. Si este charset es diferente del charset especificado en la directiva charset, se realiza una conversión.