source_charset

Директива `source_charset` задаёт набор символов, который сервер NGINX будет использовать для интерпретации исходного содержимого. — NGINX HTTP Core

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

Описание

Директива `source_charset` в NGINX используется для задания набора символов, применяемого при обработке тел входящих запросов. Эта директива особенно важна при обработке форм и содержимого POST-запросов, поскольку обеспечивает корректную интерпретацию символов сервером в соответствии с указанной кодировкой. Директиву можно применять в различных контекстах, включая `http`, `server`, `location` и `if in location`, что позволяет гибко настраивать поведение в зависимости от разных местоположений сервера или типов запросов. При определении `source_charset` необходимо указать единственное значение charset в качестве аргумента, например 'utf-8', 'iso-8859-1' и т. п. Если при обработке входящих данных кодировка не указана, NGINX по умолчанию будет интерпретировать данные таким образом, который может привести к искажению символов, особенно для содержимого с не ASCII символами. Корректная настройка `source_charset` критически важна для приложений, обрабатывающих многоязычный текст или данные из разных регионов с разными стандартами кодировок. Кроме того, для некоторых наборов символов могут существовать специальные инструкции по обработке или ограничения, поэтому важно обратиться к документации NGINX, чтобы узнать, какие наборы символов поддерживаются и какие нюансы связаны с их реализацией в разных контекстах. Неправильные настройки или неверные значения charset могут привести к таким проблемам, как повреждённые данные, неудачные запросы или ошибки сервера, что подчёркивает важность тестирования и проверки параметров charset в вашей конфигурации NGINX.

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

# Set the source charset to UTF-8 for proper encoding handling
source_charset utf-8;

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

Использование неверного charset может привести к повреждению данных, особенно для non-ASCII символов.

Помните, что эту directive может потребоваться задать на различных context levels в зависимости от потребностей вашего приложения.