На данный момент ngx_http_charset_module работает так:
1) есть директива charset on|off, которая включает работу модуля;
2) есть директива default_charset, которая задаёт кодировку ответа;
3) есть директива source_charset, которая задаёт исходную кодировку.
Если source_charset и default_charset не совпадают, то делается перекодировка.
Если же задана только одна из таких директив, то перекодировка не делается,
а просто выставляется charset, исходя из этой директивы.
Мне такое положение кажется избыточным и неудобным.
charset on|off появилась в связи с тем, что были планы сделать
автоопределение кодировки клиента, как в руссокм Апаче.
Поскольку планы изменились и автоопределения не будет, то можно
сделать такие изменения:
1) директива charset задаёт кодировку ответа, charset off запрещает выдачу
кодировки;
2) директива source_charset, которая задаёт исходную кодировку.
Если source_charset и charset не совпадают, то делается перекодировка.
Если задан только source_charset, то ничего не делается.
Игорь Сысоев
http://sysoev.ru