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.

Exemplo de Configuração#

include        conf/koi-win;

charset        windows-1251;
source_charset koi8-r;

Diretivas#

charset#

Sintaxe

charset charset | off;

Padrão

charset off;

Contexto

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, 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:

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, ou 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:

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, fastcgi_ignore_headers, uwsgi_ignore_headers, scgi_ignore_headers, e grpc_ignore_headers.

charset_map#

Sintaxe

charset_map charset1 charset2 { ... }

Padrão

Contexto

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:

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:

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.

charset_types#

Sintaxe

charset_types mime-type ...;

Padrão

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

Contexto

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.

override_charset#

Sintaxe

override_charset on | off;

Padrão

override_charset off;

Contexto

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.

Nota

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.

source_charset#

Sintaxe

source_charset charset;

Padrão

Contexto

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, uma conversão é realizada.