charset

Директива 'charset' задаёт набор символов для блока server или location в NGINX. — NGINX HTTP Core

charset
httpserverlocationif in location
Синтаксисcharset charset-name;
По умолчаниюnone
Контекстhttp, server, location, if in location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива 'charset' используется для определения набора символов, который должен использоваться в HTTP-заголовках, которые NGINX отправляет клиентам. Она играет ключевую роль в обеспечении корректного отображения содержимого на стороне клиента, информируя браузер о кодировке передаваемых данных. Это важно для веб-приложений, которым нужно точно обрабатывать разные языки или символы. Директива принимает один аргумент, который указывает набор символов, например 'utf-8', 'iso-8859-1' или 'windows-1251'. Когда эта директива установлена, NGINX будет включать charset в заголовок 'Content-Type' ответов, тем самым сообщая эту кодировку браузеру клиента. Это помогает предотвратить проблемы с неправильным отображением символов, такие как искажённый текст или неожиданные символы. Кроме того, директиву 'charset' можно настроить в разных контекстах, то есть её можно задать в блоке HTTP, server или location. Это позволяет тонко контролировать то, как различные части веб-приложения обрабатывают кодировку символов, что делает её гибкой для контента, обслуживаемого из разных частей сайта.

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

http {
    charset utf-8;

    server {
        location / {
            charset iso-8859-1;
        }
    }
}

Установка 'charset' в 'if' внутри блока 'location' может привести к непредсказуемому поведению. Как правило, рекомендуется избегать использования 'if' вместе с 'charset'.

Убедитесь, что указанный charset поддерживается вашим содержимым, иначе браузеры все равно могут неверно определить кодировку текста.