<!-- review: finished -->

<a id="http-charset"></a>

# 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.

<a id="configuration-example-10"></a>

## Ejemplo de configuración

```nginx
include        conf/koi-win;

charset        windows-1251;
source_charset koi8-r;
```

<a id="directives-11"></a>

## Directivas

<a id="index-0"></a>

<a id="id1"></a>

### charset

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `charset` charset | `off`;             |
|--------------------------------------------------------------------------------------------|----------------------------------------|
| Predeterminado                                                                             | `charset off;`                         |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | 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](#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:

```nginx
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-map), [charset](#id1) o [source_charset](#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:

```nginx
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](https://es.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-ignore-headers), [fastcgi_ignore_headers](https://es.angie.software//angie/docs/configuration/modules/http/http_fastcgi.md#fastcgi-ignore-headers), [uwsgi_ignore_headers](https://es.angie.software//angie/docs/configuration/modules/http/http_uwsgi.md#uwsgi-ignore-headers), [scgi_ignore_headers](https://es.angie.software//angie/docs/configuration/modules/http/http_scgi.md#scgi-ignore-headers) y [grpc_ignore_headers](https://es.angie.software//angie/docs/configuration/modules/http/http_grpc.md#grpc-ignore-headers).

<a id="index-1"></a>

<a id="charset-map"></a>

### charset_map

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `charset_map` charset1 charset2  { ... }   |
|--------------------------------------------------------------------------------------------|--------------------------------------------|
| Predeterminado                                                                             | —                                          |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | 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:

```nginx
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:

```nginx
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`.

<a id="index-2"></a>

<a id="charset-types"></a>

### charset_types

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `charset_types` mime-type ...;                                                                             |
|--------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|
| Predeterminado                                                                             | `charset_types text/html text/xml text/plain text/vnd.wap.wml application/javascript application/rss+xml;` |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | 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.

<a id="index-3"></a>

<a id="override-charset"></a>

### override_charset

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `override_charset` `on` | `off`;       |
|--------------------------------------------------------------------------------------------|----------------------------------------|
| Predeterminado                                                                             | `override_charset off;`                |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | 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.

#### NOTE
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.

<a id="index-4"></a>

<a id="source-charset"></a>

### source_charset

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `source_charset` charset;              |
|--------------------------------------------------------------------------------------------|----------------------------------------|
| Predeterminado                                                                             | —                                      |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | 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](#id1), se realiza una conversión.
