<!-- review: finished -->

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

# Charset

O módulo adiciona o charset especificado ao campo de cabeçalho de resposta `Content-Type`. Além disso, o módulo pode converter dados de um charset para outro, com algumas limitações:

* a conversão é realizada em uma direção — do servidor para o cliente,
* apenas charsets de byte único podem ser convertidos
* ou charsets de byte único para/de UTF-8.

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

## Exemplo de Configuração

```nginx
include        conf/koi-win;

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

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

## Diretivas

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

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

### charset

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `charset` charset | `off`;             |
|-------------------------------------------------------------------------------------------|----------------------------------------|
| Padrão                                                                                    | `charset off;`                         |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location, if in location |

Adiciona o charset especificado ao campo de cabeçalho de resposta `Content-Type`. Se este charset for diferente do charset especificado na diretiva [source_charset](#source-charset), uma conversão é realizada.

O parâmetro `off` cancela a adição do charset ao campo de cabeçalho de resposta `Content-Type`.

Um charset pode ser definido com uma variável:

```nginx
charset $charset;
```

Neste caso, todos os valores possíveis de uma variável precisam estar presentes na
configuração pelo menos uma vez na forma das diretivas [charset_map](#charset-map),
[charset](#id1), ou [source_charset](#source-charset). Para os charsets `utf-8`,
`windows-1251`, e `koi8-r`, é suficiente incluir
os arquivos `conf/koi-win`, `conf/koi-utf`, e `conf/win-utf`
na configuração. Para outros charsets, simplesmente criar uma tabela de conversão
fictícia funciona, por exemplo:

```nginx
charset_map iso-8859-5 _ { }
```

Além disso, um charset pode ser definido no campo de cabeçalho de resposta `X-Accel-Charset`. Esta capacidade pode ser desabilitada usando as diretivas [proxy_ignore_headers](https://pt.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-ignore-headers), [fastcgi_ignore_headers](https://pt.angie.software//angie/docs/configuration/modules/http/http_fastcgi.md#fastcgi-ignore-headers), [uwsgi_ignore_headers](https://pt.angie.software//angie/docs/configuration/modules/http/http_uwsgi.md#uwsgi-ignore-headers), [scgi_ignore_headers](https://pt.angie.software//angie/docs/configuration/modules/http/http_scgi.md#scgi-ignore-headers), e [grpc_ignore_headers](https://pt.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

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `charset_map` charset1 charset2  { ... }   |
|-------------------------------------------------------------------------------------------|--------------------------------------------|
| Padrão                                                                                    | —                                          |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http                                       |

Descreve a tabela de conversão de um charset para outro. Uma tabela de conversão reversa é construída usando os mesmos dados. Códigos de caracteres são dados em hexadecimal. Caracteres ausentes no intervalo 80-FF são substituídos por "?". Ao converter de UTF-8, caracteres ausentes em um charset de byte único são substituídos por "&#XXXX;".

Exemplo:

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

Ao descrever uma tabela de conversão para UTF-8, códigos para o charset UTF-8 devem ser dados na segunda coluna, por exemplo:

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

Tabelas de conversão completas de `koi8-r` para `windows-1251`, e de
`koi8-r` e `windows-1251` para `utf-8` são fornecidas nos
arquivos de distribuição `conf/koi-win`, `conf/koi-utf`, e
`conf/win-utf`.

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

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

### charset_types

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `charset_types` mime-type ...;                                                                             |
|-------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|
| Padrão                                                                                    | `charset_types text/html text/xml text/plain text/vnd.wap.wml application/javascript application/rss+xml;` |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location                                                                                     |

Habilita o processamento do módulo em respostas com os tipos MIME especificados além de `text/html`. O valor especial `*` corresponde a qualquer tipo MIME.

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

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

### override_charset

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `override_charset` `on` | `off`;       |
|-------------------------------------------------------------------------------------------|----------------------------------------|
| Padrão                                                                                    | `override_charset off;`                |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location, if in location |

Determina se uma conversão deve ser realizada para respostas recebidas de um servidor proxy ou FastCGI/uwsgi/SCGI/gRPC quando as respostas já carregam um charset no campo de cabeçalho de resposta `Content-Type`. Se a conversão estiver habilitada, um charset especificado na resposta recebida é usado como charset de origem.

#### NOTE
Se uma resposta é recebida em uma subrequisição, então a conversão do charset da resposta para o charset da requisição principal é sempre realizada, independentemente da configuração da diretiva override_charset.

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

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

### source_charset

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `source_charset` charset;              |
|-------------------------------------------------------------------------------------------|----------------------------------------|
| Padrão                                                                                    | —                                      |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location, if in location |

Define o charset de origem de uma resposta. Se este charset for diferente do charset especificado na diretiva [charset](#id1), uma conversão é realizada.
