Hi!
> alr> Я думаю что лучше: CharsetDecl koi8-r windows-1251 iso-8859-5 ru,
> alr> то есть последний таг - язык, так уже работало для CharsetTable.
> alr> Это так же правильно, как и CharsetLanguageBind, но совместимо.
> В текущей реализации CharsetDecl вызывает резервирование места для таблиц
> перекодировки и прочего подобного. Переделывать не хочется. Да и ваш способ
> неудобен, если один charset может быть у нескольких языков (скажем, тот же
> iso-8859-5 - это несколько языков, iso-8859-1 - тем более).
Речь только об конфиг файле, а внутри все равно много прийдется переделывать. :(
Так же как и при CharsetLanguageBind.
А эти три строки
CharsetDecl koi8-r ru
CharsetDecl windows-1251 ru
CharsetDecl iso-8859-5 ru
сделать равнозначными одной: "CharsetDecl koi8-r windows-1251 iso-8859-5 ru"
Ну и конечно имеет право быть
CharsetDecl iso-8859-5 ru
CharsetDecl iso-8859-5 ue
> alr> Я тут хочу повторить свое предложение: использовать одну таблицу
> alr> для каждого Charset - через UNI-code (utf8?), a из него генерировать
> alr> все остальные.
> Тут два недостатка:
> 1) оно не работает, если нет двустороннего преобразования между charset.
> Скажем, koi8->translit - возможное преобразование, а наоборот - нет
Будет работать, все зависет от синтаксиса.
> 2) оно не работает, если есть "многобуквенные буквы" (тот же translit)
Как раз translit и utf-8 - очень похожи и для них можно использовать
один и тот же механизм.
> 3) convert_by_table и так ~10% времени кушает, хотя там всего-лишь
> преобразование по 256-байтовой таблице. По 16-битам или по переменной длине
> (utf-8) будет гораздо медленнее.
А я и говорю, нужно 256-байтовую таблицу из двух UNI-<code>.tab делать!!!!!!!
> alr> Я тут в одном месте долго искал ошибку: почему сервер
> alr> в windows-1251, не перекодирует,как оказалось что сервер настроен на
> alr> koi8-r, а тут была перекодировка из iso-8859-5 в windows-1251 - пока
> alr> нашел - вспотел.
> :) Еще один наступил на эти грабли.
>
> >> б) для случая, когда внутреннее имя и имя выдаваемое пользователю не
> >> совпадают, нужна какая-то директива вида:
> >> CharsetOverrideName internal_name language displayed_name
> alr> А как это?
> Ну, скажем, есть у меня iso-8859-1-cz и iso-8859-1-fi. Это - внутренние
> представления и внутренние названия (просто чтобы различать перекодировки
> финского и чешского). Но отдать то пользователю надо
> Content-Type:...;charset=iso-8859-1
Тут мне кажется, что iso-8859-1-cz и iso-8859-1-fi - это внутрение имя в модуле,
и в конфиге его не нужно, достаточно будет его генерировать из CharsetDecl,
--
Best regards, Eugene Byrganov
mailto:E.B.Byrganov@inp.nsk.su
work - http://www.inp.nsk.su/
"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.