charset
Igor Sysoev
is at rambler-co.ru
Sun Jul 10 12:27:21 MSD 2005
On Sun, 10 Jul 2005, Andrey N. Oktyabrski wrote:
> Igor Sysoev wrote:
>> 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;
>> }
> Вот, и я об этом - если я теперь добавлю
> server {
> # в нём нет *charset
> }
>
> То в нём перекодировка будет по умолчанию. Если я этого не хочу, мне надо там
> написать ОБЕ директивы с одинаковым значением.
Да, обе.
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list