Spec-Zone.ru › nginx

Модуль ngx_http_charset_module

  • Пример конфигурации
  • Директивы
  • charset
  • charset_map
  • charset_types
  • override_charset
  • source_charset

Модуль ngx_http_charset_module добавляет указанный кодировку в поле заголовка ответа «Content-Type». Кроме того, модуль может преобразовывать данные из одной кодировки в другую, с некоторыми ограничениями:

  • преобразование выполняется в одном направлении — от сервера к клиенту,
  • могут преобразовываться только однобайтовые кодировки
  • или однобайтовые кодировки в/из UTF-8.

Пример конфигурации

include        conf/koi-win;

charset        windows-1251;
source_charset koi8-r;

Директивы

Синтаксис: charset charset | off;
По умолчанию: charset off;
Контекст: http, server, location, if in location

Добавляет указанную кодировку в поле заголовка ответа «Content-Type». Если эта кодировка отличается от кодировки, указанной в директиве source_charset, выполняется преобразование.

Параметр off отменяет добавление кодировки в поле заголовка «Content-Type».

Кодировку можно определить с помощью переменной:

charset $charset;

В этом случае все возможные значения переменной должны присутствовать в конфигурации хотя бы один раз в виде директив charset_map, charset или source_charset. Для кодировок utf-8, windows-1251, и koi8-r достаточно включить файлы conf/koi-win, conf/koi-utf, и conf/win-utf в конфигурацию. Для других кодировок достаточно создать фиктивную таблицу преобразований, например:

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 charset1 charset2 { ... }
По умолчанию: —
Контекст: http

Описывает таблицу преобразования из одной кодировки в другую. Обратная таблица преобразования строится по тем же данным. Коды символов указаны в шестнадцатеричном формате. Отсутствующие символы в диапазоне 80-FF заменяются на «?». При преобразовании из UTF-8, отсутствующие символы в однобайтовой кодировке заменяются на «&#XXXX;».

Пример:

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

При описании таблицы преобразования в UTF-8 коды символов UTF-8 должны быть указаны во втором столбце, например:

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

Полные таблицы преобразования из koi8-r в windows-1251, и из koi8-r и windows-1251 в utf-8 предоставлены в файлах дистрибутива conf/koi-win, conf/koi-utf, и conf/win-utf.

Синтаксис: charset_types mime-type ...;
По умолчанию: charset_types text/html text/xml text/plain text/vnd.wap.wml application/javascript application/rss+xml;
Контекст: http, server, location

Эта директива появилась в версии 0.7.9.

Включает обработку модулем ответов с указанными MIME типами помимо «text/html». Специальное значение «*» соответствует любому MIME типу (0.8.29).

До версии 1.5.4, «application/x-javascript» использовалось в качестве значения MIME типа по умолчанию вместо «application/javascript».
Синтаксис: override_charset on | off;
По умолчанию: override_charset off;
Контекст: http, server, location, if in location

Определяет, должно ли выполняться преобразование для ответов, полученных от прокси-сервера или сервера FastCGI/uwsgi/SCGI/gRPC, когда ответы уже содержат кодировку в заголовке ответа «Content-Type». Если преобразование включено, кодировка, указанная в полученном ответе, используется как исходная кодировка.

Следует отметить, что если ответ получен в подзапросе, то преобразование из кодировки ответа в кодировку основного запроса всегда выполняется, независимо от настроек директивы override_charset .
Синтаксис: source_charset charset;
По умолчанию: —
Контекст: http, server, location, if in location

Определяет исходную кодировку ответа. Если эта кодировка отличается от кодировки, указанной в директиве charset, выполняется преобразование.

© 2002-2021 Igor Sysoev
© 2011-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/http/ngx_http_charset_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API