Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-rus] так где язык и где его кодировка?



Hi!

 alr> Если маньяк администратор поставил strict, то он знал на что шел. А
 alr> вот с тем, что совсем отключать обработку charset - это да, как-то
 alr> неправильно в таком случае.. погорячился..
 alr> Видно несколько вариантов:
 alr>  1) по сочетанию бродилка/язык игнорировать язык, считая, что accept
 alr>     charset/language нам заданы не были
[skipped]
Давайте все-таки расставим точки над Ъ.

1) Механизм Language Negotiation уже существует в Apache (MultiViews),
каким-то образом он работает, хотя на практике неприменим из-за лени 
пользователей.

2) mod_charset вступает в дело на предпоследней стадии обработки запроса,
когда известен окончательный URL (после всех Alias/Redirect) и так далее.

3) на этом этапе модулю известны:
 a) URL и Filename
 b) Language документа (if any)
 c) Заголовки запроса - Accept/Accept-Charset/Accept-Language/User-Agent
 d) естественно, всякие настройки

4) Задача заключается в том, чтобы выяснить charset документа, выдаваемый
в строке Content-Type и правила перекодировки из кодировки сервера в кодировку 
клиента.

5) Предлагается:
a) сделать какой-то механизм объявления серверу, что такому-то Document 
Language может соответствовать такой-то возможный список charsets.
   Вариантов два:
  - CharsetDecl koi8-r ru ua by
  - CharsetLanguageBind ru koi8-r windows-1251 iso-8859-5

  При этом в обоих случаях _удобно_ (мне как программисту) понимать под
  Charset   внутреннее название таблицы перекодировки (в большинстве
  случаев оно  совпадает с выдаваемым пользователю
  Content-Type:... charset=name)

 б) для случая, когда внутреннее имя и имя выдаваемое пользователю не
  совпадают, нужна какая-то директива вида:

  CharsetOverrideName internal_name language displayed_name

 в) Заголовок Accept-Charset должен обрабатываться таким образом,
   что во внимание принимаются только charsets, определенные для данного
   языка документа.

 г) К механизму MultiViews это не должно иметь почти никакого отношения, за
   исключением того факта, что Document Language определяется директивой
   AddLanguage (благо она уже есть).

 г) Этот режим должен быть выключен по умолчанию. Для включения нужна отдельная
   директива. Я предлагаю расширить CharsetMatchLanguage  - ввести режим
   strict который и будет делать вышеописанное.


Давайте дальнейшее обсуждение продолжать где-то с этой точки. А то есть 
непонимание.

С уважением,Alex Tutubalin

--- GoldED 2.42.G1114+








Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.