Hi!
alr> Можно и нафиг. Хозяин -- барин. Но IMHO есть [относительно] простое
alr> решение: имена файлов в каталоге записываются в той же кодировке, в какой
alr> хранится содержимое файлов для "обычных" файлов (так как в Unix-мире
Понятие "обычный файл" (i.e. CharsetSourceEnc) может быть не определено.
alr> P.S. Просто как-то постепенно всюда налаживается использование русских
alr> букв в именах файлов (MARS_NWE с моей подачи перекодирует имена файлов из
alr> cp866 в koi8-r и обратно; Linux 2.1.x перекодирует имена файлов на VFAT'е
alr> (из cp866 или Unicode)
Но ведь у вас не так ? Содержимое файлов - в cp1251, содержимое каталога -
koi8-r, разве нет ?
alr> P.P.S. Кстати как же существующий httpd догадался -- куда и как
alr> перекодировать? Догадался он, правда, поздновато, но ведь правильно!
В смысле ? Кодировка клиента - как обычно, кодировка файла - скорее всего по
CharsetSourceEnc. Там же (как я помню) filename тоже перекодируется, как ни
смешно, но слишком поздно.
В-общем, я увидел пока такие вот проблемы:
1) Единственное место, куда вписывается это хозяйство - это на этап URL
rewriting. Но на этом этапе кодировка клиента еще не определена. При этом,
перемещение определения кодировки клиента на эту фазу тоже делать не хочется
(определение кодировки в последнюю фазу вызвано тем, что сначала хочется
дождаться всех internal-redirects). Это - принципиальная проблема.
2) Смена URL на ходу может привести к странной работе всяких Alias/RewriteRule
и так далее. Т.е. будет наблюдаться явная интерференция. Этой интерференции
почти нет _сейчас_ в реальной жизни т.к. никто не пишет Alias/Redirect
для одного URL'а. А тут будет такой неявный RewriteEngine для всех URL.
3) как это должно работать с транслитом мне вообще непонятно.
4) так же мне непонятна как это должно работать, например, если происходит
internal redirect и у нового URL уже другая кодировка CharsetFilename.
Резюме. У меня пока вопросов больше чем ответов. С удовольствием приму патч
и положу в директорию contrib, но если патч не будет иметь при себе ответов
на вопросы 1)..4), то снабжу его нелицеприятным комментарием.
С уважением,Alex Tutubalin
--- GoldED 2.42.G1114+
"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.