charset

Igor Sysoev is at rambler-co.ru
Sun Jul 10 12:03:24 MSD 2005


On Sun, 10 Jul 2005, Andrey N. Oktyabrski wrote:

> Igor Sysoev wrote:
>> 
>> На данный момент 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, то ничего не делается.
> То есть, если я в сервере хочу переопределить source_charset, мне надо там 
> обязательно выставить и charset, чтобы оставить перекодировку выключенной 
> (Если в http я задал умолчания)? Это плохо. Можно ли сделать в charset третью 
> альтернативу - "source_charset", которая будет указывать, что перекодировку 
> делать не надо никогда, а кодировку ответа выставлять всегда в 
> source_charset? То есть, где-то так:
> charset <кодировка>|off|source_charset

Предлагается следующее:

http {

    # Content-Type: ...; charset=windows-1251
    # перекодирование из koi8-r в windows-1251

    charset         windows-1251;
    source_charset  koi8-r;

    server {
        # унаследованный Content-Type: ...; charset=windows-1251
        # перекодирования нет, так как charset и source_charset совпадают

        source_charset  windows-1251;
    }



Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list