Charset#
Добавляет указанную кодировку в поле Content-Type заголовка ответа. Кроме того, модуль может перекодировать данные из одной кодировки в другую с некоторыми ограничениями:
перекодирование осуществляется только в одну сторону — от сервера к клиенту,
перекодироваться могут только однобайтные кодировки
или однобайтные кодировки в UTF-8 и обратно.
При сборке из исходного кода модуль собирается по
умолчанию; его можно отключить с помощью
параметра сборки --without-http_charset_module.
В пакетах и образах из наших репозиториев модуль
включен в сборку. По умолчанию http, server, location, if в location Добавляет указанную кодировку в поле Параметр Кодировка может быть задана с помощью переменной: В этом случае необходимо, чтобы все возможные значения переменной присутствовали хотя бы один раз в любом месте конфигурации в виде директив charset_map, charset или source_charset. Для кодировок utf-8, windows-1251 и koi8-r для этого достаточно включить в конфигурацию файлы conf/koi-win, conf/koi-utf и conf/win-utf. Для других кодировок можно просто сделать фиктивную таблицу перекодировки, например: Кроме того, кодировка может быть задана в поле Описывает таблицу перекодирования из одной кодировки в другую. Таблица для обратного перекодирования строится на основании тех же данных. Коды символов задаются в шестнадцатеричном виде. Неописанные символы в пределах 80-FF заменяются на "?". При перекодировании из UTF-8 символы, отсутствующие в однобайтной кодировке, заменяются на "&#XXXX;". Пример: При описании таблицы перекодирования в UTF-8, коды кодировки UTF-8 должны быть указаны во второй колонке, например: Полные таблицы преобразования из koi8-r в windows-1251 и из koi8-r и windows-1251 в utf-8 входят в дистрибутив и находятся в файлах conf/koi-win, conf/koi-utf и conf/win-utf. По умолчанию http, server, location Разрешает работу модуля в ответах с указанными MIME-типами в дополнение к По умолчанию http, server, location, if в location Определяет, выполнять ли перекодирование для ответов, полученных от проксированного сервера или от FastCGI/uwsgi/SCGI/gRPC-сервера, если в ответах уже указана кодировка в поле Примечание Если ответ был получен в подзапросе, то, независимо от значения директивы override_charset, всегда выполняется перекодирование из кодировки ответа в кодировку основного запроса. Задает исходную кодировку ответа. Если эта кодировка отличается от указанной в директиве charset, то выполняется перекодирование.Пример конфигурации#
include conf/koi-win;
charset windows-1251;
source_charset koi8-r;
Директивы#
charset#
charset кодировка | off;charset off;Content-Type заголовка ответа. Если эта кодировка отличается от указанной в директиве source_charset, то выполняется перекодирование.off отменяет добавление кодировки в поле Content-Type заголовка ответа.charset $charset;
charset_map iso-8859-5 _ { }
X-Accel-Charset заголовка ответа. Эту возможность можно запретить с помощью директив proxy_ignore_headers, fastcgi_ignore_headers, uwsgi_ignore_headers, scgi_ignore_headers и grpc_ignore_headers.charset_map#
charset_map koi8-r windows-1251 {
C0 FE ; # small yu
C1 E0 ; # small a
C2 E1 ; # small b
C3 F6 ; # small ts
}
charset_map koi8-r utf-8 {
C0 D18E ; # small yu
C1 D0B0 ; # small a
C2 D0B1 ; # small b
C3 D186 ; # small ts
}
charset_types#
charset_types mime-тип ...;charset_types text/html text/xml text/plain text/vnd.wap.wml application/javascript application/rss+xml;text/html. Специальное значение * соответствует любому MIME-типу.override_charset#
override_charset on | off;override_charset off;Content-Type заголовка ответа. Если перекодирование разрешено, то в качестве исходной кодировки используется кодировка, указанная в полученном ответе.source_charset#